阻止用户返回 NavigationController
Posted
技术标签:
【中文标题】阻止用户返回 NavigationController【英文标题】:Block user going back in NavigationController 【发布时间】:2016-12-08 05:08:39 【问题描述】:我在导航控制器中有一个视图。当用户按下后退按钮时,我需要检查他在视图中选择的数据是否正确。如果是我允许他返回,如果不是,我会显示他犯错的通知,并且允许他留在这个视图中并且不允许返回。我尝试在 viewWillDisappear 中执行此操作,但我的代码没有以正确的方式工作。我该如何组织这样的事情?
【问题讨论】:
如何通过网络或本地检查代码中的数据是否正确? 你有自定义后退按钮吗?如果是,那么为什么不将逻辑放入 BackButton 操作中。 你如何编写代码返回:使用 segue 或使用 popviewcontroller 我没有自定义后退按钮。数据是本地的。用户只选择 NSSet 的单元格,NSSet 计数不能超过常数。我没有写任何代码返回,一切都是由故事板自动完成的。 条件满足后使用segue名称移动。 【参考方案1】:一种选择是实现您自己的自定义后退按钮。将以下代码添加到您的 viewDidLoad
方法中:
self.navigationItem.hidesBackButton = YES;
UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(back:)];
self.navigationItem.leftBarButtonItem = newBackButton;
你的选择器方法是-
- (void) back:(UIBarButtonItem *)sender
if(/*your condition satisfy*/)
[self.navigationController popViewControllerAnimated:YES];
else
/** Popup your alert here */
【讨论】:
你在哪里检查条件,你可以根据问题修改答案 在 - (void) back:(UIBarButtonItem *)sender 方法上,他可以检查用户数据并决定是否允许用户返回。 如果你修改答案,它会对提问者有用以上是关于阻止用户返回 NavigationController的主要内容,如果未能解决你的问题,请参考以下文章
阻止用户在 React Native 中成功登录后返回登录屏幕