如何在从UINavigationController弹出UIViewController之前显示警报

时间:2011-08-03 16:59:17

标签: iphone objective-c xcode uinavigation

我有一个UINavigationController,它管理多个UIViewControllers。当在视图控制器层次结构的顶部,并且当按下后面时,我想显示UIAlertView以询问用户他们是否确定要返回。检查视图是否弹出的最佳方法是什么?

4 个答案:

答案 0 :(得分:4)

我认为后退按钮没有具体信息 但您可以尝试继承 UINavigationController ,然后重写方法 popViewControllerAnimated:。 (我没试过。)

另一种选择是创建 UIBarButtonItem 类型的自定义后退按钮,并为此按钮添加目标和操作。

答案 1 :(得分:1)

这可以通过继承UINavigationController和覆盖来完成 (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item { }

重写popViewControllerAnimated:取消流行音时已太晚了。

答案 2 :(得分:0)

我认为唯一有效的方法是截取视图的截图,剪切按钮,然后在navigationController栏中添加一个uibutton。然后将您剪切的图像设置为按钮图像,之后您只需使用uialertview创建一个动作。将您的类设置为Uialertviewdelegate,并在用户使用

按下确定按钮时弹出viewcontroller
- (void)alertView:(UIAlertView *)actionSheet     clickedButtonAtIndex: (NSInteger)buttonIndex {
   if (buttonIndex == 0)
    {
       //pop viewcontroller
    }
  }

答案 3 :(得分:0)

如何使用UINavigationControllerDelegate-Methods

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated

并检查应该被推送的控制器是否需要警告。反过来也行不通!