Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当用户单击“时触发事件”&书信电报;“后退”;按钮_Ios_Ios7_Rubymotion - Fatal编程技术网

Ios 当用户单击“时触发事件”&书信电报;“后退”;按钮

Ios 当用户单击“时触发事件”&书信电报;“后退”;按钮,ios,ios7,rubymotion,Ios,Ios7,Rubymotion,我有相当简单的UINavigationControllers,有两个屏幕:屏幕1和屏幕2 当用户打开screen2并单击

我有相当简单的
UINavigationControllers
,有两个屏幕:屏幕1和屏幕2

当用户打开
screen2
并单击
时,我想在显示
screen1
之前触发一个事件——基本上我想从服务器获取screen1的数据


有办法做到这一点吗

如果您使用的是故事板,您可以在中处理背部动作

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

只有在
视图中执行此操作,才会消失
。不幸的是,当您在当前屏幕上显示新屏幕时,它也会被触发,而不仅仅是当您点击后退按钮时。但是,您可以添加一个自定义的后退按钮,并将代码放在它的操作方法中。操作完成后,调用
[self.navigationController popViewControllerAnimated:YES]

 -(void)viewWillDisappear:(BOOL)animated{
    if (![self.navigationController.viewControllers containsObject:self]) {
        NSLog(@"Back Event");
    }
}
你可以用两种方法

  • 创建自定义按钮并设置事件

  • 当用户弹出屏幕时,检查视图将消失


  • 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];
    }
    
    希望这有帮助:)