我在导航栏上有后退按钮和编辑按钮,如下所示
点击“编辑”按钮后,我有
我的问题:当我处于编辑模式时,如何禁用单击后退按钮,以便用户在完成之前无法返回上一屏幕.....
我正在尝试的是
self.navigationItem.backBarButtonItem.enabled = NO;
但后退按钮仍可点击
PS:我向导航栏添加按钮的方式是
self.navigationItem.hidesBackButton = NO;
我可以隐藏按钮,但我不想要那个选项......
请就此问题向我提出建议。欢迎任何评论。
答案 0 :(得分:2)
最佳解决方案是在您离开屏幕时结束编辑模式,可能首先显示确认提醒(UIAlertView
有两个按钮“确定”和“取消”)。
但是,要回答这个问题 - 您必须创建一个与后退按钮外观相同的UIButton
(使用图像)。使用此按钮创建UIBarButtonItem
作为自定义视图,并在leftBarButtonItem
中使用它(请注意backBarButtonItem
无法拥有自定义视图)。
然后,您就可以在该自定义视图上将enabled
设置为NO
。
UIBarButtonItem
具有enabled
属性。禁用后退按钮的问题可能是因为您在错误的backBarButtonItem
上停用了navigationItem
。后退按钮始终由堆栈中的前一个控制器定义。
答案 1 :(得分:1)
如果按钮被阻止,您可能应该隐藏它。因为在我看来,没有响应的按钮对用户不利。
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[UIView animateWithDuration:0.35f animations:^{
self.navigationItem.hidesBackButton = editing;
}];
}
答案 2 :(得分:0)
self.navigationItem.backBarButtonItem.enabled = NO;
你把上面的代码放在哪里。将上面的代码放在编辑按钮的IBAction方法中。