gpt4 book ai didi

iphone - UINavigationController:如何取消后退按钮事件?

转载 作者:IT王子 更新时间:2023-10-29 08:16:39 24 4
gpt4 key购买 nike

在我的 UIViewController 中,我有一个带有默认后退按钮的 UINavigationController。当用户单击后退按钮时,应显示一条警告消息:“您真的要返回吗?”。我知道,不可能捕获后退按钮事件。只能使用 viewWillDisappear 并设置一个标志:

- (void)viewWillDisappear:(BOOL)animated {
if (backBtnPressed) {
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Question" message:@"Do you really want to go back?" delegate:self cancelButtonTitle:@"No" otherButtonTitles: @"Yes", nil] autorelease];
[alert show];
}
}

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0) {
// don't go back!
// cancel the back button event
}
else if (buttonIndex == 1) {
// go back
}
}

但是有了这段代码我就没有机会了!我无法停止后退按钮事件,不是吗?

我是否必须编写自己的后退按钮并将其设置为 leftBarButtonItem?或者有人有好主意吗? :-)

感谢您的帮助!

最佳答案

我的 answer来自另一个线程匹配这个问题。所以我在这里重新发布它:

我已经实现了 UIViewController-BackButtonHandler扩大。它不需要子类化任何东西,只需将它放入您的项目并覆盖 UIViewController 类中的 navigationShouldPopOnBackButton 方法:

-(BOOL) navigationShouldPopOnBackButton {
if(needsShowConfirmation) {
// Show confirmation alert
// ...
return NO; // Ignore 'Back' button this time
}
return YES; // Process 'Back' button click and Pop view controller
}

Download sample app .

关于iphone - UINavigationController:如何取消后退按钮事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5115135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com