[self.navigationController popViewControllerAnimated:YES]; 之后调用什么方法?
我有这个代码:
-(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];
之后调用了什么方法?
I have this code :
-(IBAction)OkButtonPressed:(id)sender{
NSLog(@"BTN OK");
RecherchePartenaireTableView *recherchePartenaireTableView=[[RecherchePartenaireTableView alloc]init];
recherchePartenaireTableView.mytext=textFieldCode.text;
[self.navigationController popViewControllerAnimated:YES];
}
and after I press ok I see in console the message "BTN OK" and nothing else. In class RecherchePartenaireTableView I have the methods viewWillAppear, viewDidload... and a NSLog message for each method. What method is called after [self.navigationController popViewControllerAnimated:YES];
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您尝试设置类
RecherchePartenaireTableView
的属性(该属性已位于导航堆栈中),那么您创建它的新实例就错了。您应该从 navigationController 堆栈中取回实例。
更改
为
viewDidAppear
方法。将在您推送视图的类上调用
If you are trying to set a property of class
RecherchePartenaireTableView
, which is on the navigation stack already then you are doing it wrong by creating a new instance of it.You should be getting back the instance from navigationController stack.
Change
To
viewDidAppear
method will be called on the class you pushed the view from.如果您有一个控制器 A,并且您将控制器 B 推到 A 之上。
因此,在控制器 B 中调用 popViewControllerAnimated 时,
在 B 是 RecherchePartenaireTableView 的情况下,将调用控制器 A 的 viewWillAppear:animated
,因此在执行 popViewController 时无法调用 B 的 viewWillAppear。
如果您想在 RecherchePartenaireTableView 消失时执行某些操作,请在 RecherchePartenaireTableView 的 viewWillDisappear 中执行
If you have a controller A and you are pushing controller B on top of A.
So on calling popViewControllerAnimated in controller B
viewWillAppear:animated for controller A will be called
in your case B is RecherchePartenaireTableView, so there is no way viewWillAppear for B will be called on doing popViewController.
If you want to do something when RecherchePartenaireTableView disappears, do it in RecherchePartenaireTableView's viewWillDisappear