Push and Pop behaviour is strange, why?

2019-03-03 14:36发布

问题:

I have two classes, the one is addAlarm and second is Name,,,

for now I am in addAlarm (addAlarm is subclass of UITableViewController), as it selects the row, then it goes to Name class as below

        Name *ob = [[Name alloc] initWithStyle:UITableViewStyleGrouped];
        [self.navigationController pushViewController:ob animated:YES];

        [ob release];
        ob = nil;

then there is UINavigationBar with addAlarm as back button by default, while Name is also subclass of UITableViewController

I observe that when I click addAlarm backbutton in Name, then it goes back to addAlarm, and its viewWillAppear Method calls, but after that it calls

         - (void)viewDidUnload

and

         - (void)dealloc

of Name Class.

I am unable to understand that why it is calling the methods of Name after it executes ViewWillApear of addAlarm, any Idea?

回答1:

Instead of passing data in dealloc method You can Pass data in below method.

-(void)viewWillDisappear:(BOOL)animated{

}

Another Method is to store it in appDelegate file like below.

In appDelegate.h file

NSString *strName;

@property (nonatomic, retain) NSString *strName;

In appDelegate.m file

@synthesize strName;

Now, you can create object of Application in your NameController like below

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 

And store value like this

appDelegate.strName = @"Value to be passed to addAlarm View"

Hope this help.