如何禁用点击后退按钮,iPhone

时间:2012-05-24 13:34:34

标签: iphone objective-c

我在导航栏上有后退按钮和编辑按钮,如下所示 enter image description here

点击“编辑”按钮后,我有

enter image description here

我的问题:当我处于编辑模式时,如何禁用单击后退按钮,以便用户在完成之前无法返回上一屏幕.....

我正在尝试的是

self.navigationItem.backBarButtonItem.enabled   =   NO;

但后退按钮仍可点击

PS:我向导航栏添加按钮的方式是

self.navigationItem.hidesBackButton             =   NO;

我可以隐藏按钮,但我不想要那个选项......

请就此问题向我提出建议。欢迎任何评论。

3 个答案:

答案 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方法中。