问题
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.
来源:https://stackoverflow.com/questions/6717269/push-and-pop-behaviour-is-strange-why