我有一个UINavigationController,它管理多个UIViewControllers。当在视图控制器层次结构的顶部,并且当按下后面时,我想显示UIAlertView以询问用户他们是否确定要返回。检查视图是否弹出的最佳方法是什么?
答案 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
并检查应该被推送的控制器是否需要警告。反过来也行不通!