我有这段代码:
-(IBAction)OkButtonPressed:(id)sender{
NSLog(@"BTN OK");
RecherchePartenaireTableView *recherchePartenaireTableView=[[RecherchePartenaireTableView alloc]init];
recherchePartenaireTableView.mytext=textFieldCode.text;
[self.navigationController popViewControllerAnimated:YES];
}
在我按下确定后,我在控制台中看到“BTN OK”消息,没有别的。在类RecherchePartenaireTableView中,我有方法viewWillAppear,viewDidload ...和每个方法的NSLog消息。在[self.navigationController popViewControllerAnimated:YES];
之后调用什么方法?
答案 0 :(得分:4)
如果您有控制器A并且您正在将控制器B推到A之上。 所以在控制器B中调用popViewControllerAnimated
viewWillAppear:控制器A的动画将被称为
在你的情况下,B是RecherchePartenaireTableView,因此在执行popViewController时无法调用B的viewWillAppear。
如果您想在RecherchePartenaireTableView消失时执行某些操作,请在RecherchePartenaireTableView的viewWillDisappear中执行此操作
答案 1 :(得分:4)
如果您尝试设置类RecherchePartenaireTableView
的属性,该属性已经在导航堆栈上,那么您通过创建它的新实例来做错了。
您应该从navigationController堆栈返回实例。
更改
RecherchePartenaireTableView *recherchePartenaireTableView=[[RecherchePartenaireTableView alloc]init];
recherchePartenaireTableView.mytext=textFieldCode.text;
到
NSArray *viewControllers = [self.navigationController viewControllers];
RecherchePartenaireTableView *recherchePartenaireTableViewVC = (RecherchePartenaireTableView *)[viewControllers objectAtIndex:viewControllers.count - 2];
recherchePartenaireTableViewVC.mytext=textFieldCode.text;
将在您推送视图的类上调用 viewDidAppear
方法。
答案 2 :(得分:1)
- (void) viewWillAppear: (BOOL)animated method will be called first