我有两个屏幕相当简单UINavigationControllers
:screen1&画面2。
当用户在screen2
并点击< Back
时,我想在显示screen1
之前触发事件 - 基本上我想从服务器获取screen1的数据。
有办法做到这一点吗?
答案 0 :(得分:1)
在viewDidLoad
执行此操作:
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"icon_back.png"] style:UIBarButtonItemStylePlain target:self action:@selector(goBack:)];
self.navigationItem.leftBarButtonItem = backBarButton;
实施方法goBack
:
- (void)goBack:(id)sender {
//Do something
[self.navigationController popViewControllerAnimated:YES];
}
希望这会有所帮助.. :)
答案 1 :(得分:0)
如果你正在使用故事板,你可以在。
处理你的后退行动- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
答案 2 :(得分:0)
仅在viewWillDisappear
中执行此操作。不幸的是,当您在当前屏幕上显示新屏幕时,它也会被触发,而不仅仅是当您点按后退按钮时。但是,您可以添加自定义后退按钮,并将代码放在其操作方法中。操作完成后,请致电[self.navigationController popViewControllerAnimated:YES]
答案 3 :(得分:0)
-(void)viewWillDisappear:(BOOL)animated{
if (![self.navigationController.viewControllers containsObject:self]) {
NSLog(@"Back Event");
}
}
你可以两种方式做。
创建自定义按钮并设置事件。
用户弹出屏幕时检查viewWillDisappear