Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I'm trying to switch back from my UIViewController to my UITableViewController but apperendly it's not working the way I want it to. I did create my Interface with storyboards from the start, so I'm not really into moving from one View to another by code. Until now, I just pushed my Views per sergues which are easy to implement with storyboards. But when I tried moving back to my previous Views, a new ViewController will be implemented, so all my data I stored in the old one is "lost".

Actually there is no code I could present you (because of the sergues) but the situation is:

->I got an MutableArray storing stuff in my UITableView.

->User taps the scan Button, scans a new Item which should be imported in my array.

->When trying to push back to my tableView there's a new Controller awating me, unaware of the data I stored in the old one.

So how do I simply move back to my old Controller preventing to create a new one all the time?

Does a sergue-push always creates a new Controller?

(Question may be simple, but I'm new to this stuff. Tried some results presented by the search function, but none of them worked :( )

/edit: Popback problem has been solved but array filling problem still exists. Code:

GeneralSettings *sharedGS = [GeneralSettings sharedInstance];
sharedGS.strEAN = [[NSString alloc] initWithString:strCheckString];
[sharedGS.listArray insertObject:strCheckString atIndex:0];
NSLog(@"Anzahl der EAN-Codes: %d
Erster Code: %@
 In Variable: %@", sharedGS.listArray.count, [sharedGS.listArray objectAtIndex:0],sharedGS.strEAN);

Data in sharedGS.strEAN ("83274572354" i.e.) Data in listArray (null)

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
558 views
Welcome To Ask or Share your Answers For Others

1 Answer

You don't push back. That creates a new instance of the previous controller class. You pop back. You can accomplish that 2 ways.

1: In code put in the following statement when you want to return (pop) to you tablet view controller.

[self.navigationController popViewControllerAnimated:YES];

2: If you want to do it in storyboard you need to implement the following custom segue class:

implementation

//  PopSegue.m

#import "PopSegue.h"

@implementation PopSegue

- (void) perform {

    UIViewController *src = (UIViewController *) self.sourceViewController;
[src.navigationController popViewControllerAnimated:YES];
}

and header

//  PopSegue.h

#import <UIKit/UIKit.h>

@interface PopSegue : UIStoryboardSegue

@end

Place this method in your UIViewController to set a property back to your UITableViewController:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"goBackToTableView"])  {
    [[segue destinationViewController] set{whatEverProperyYouWantTo}: {valueOfPropertyToSet}];
    }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...