1

我的导航栏上有后退按钮和编辑按钮,如下所示 在此处输入图像描述

单击编辑按钮后,我有

在此处输入图像描述

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

我正在尝试的是

self.navigationItem.backBarButtonItem.enabled   =   NO;

但是后退按钮仍然可以点击

PS:我将返回按钮添加到导航栏的方式是

self.navigationItem.hidesBackButton             =   NO;

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

请就这个问题给我建议。欢迎任何意见在这里。

4

3 回答 3

2

最好的解决方案是在您离开屏幕时结束编辑模式,可能首先显示确认警报(UIAlertView带有两个按钮“确定”和“取消”)。

但是,要回答这个问题 - 您必须创建一个UIButton外观与后退按钮相同的按钮(使用图像)。使用此按钮创建一个UIBarButtonItem作为其自定义视图并在其中使用它leftBarButtonItem(注意backBarButtonItem不能有自定义视图)。

然后,您就可以在该自定义视图上enabled进行设置。NO

编辑:我错了。UIBarButtonItem有财产enabled。禁用后退按钮的问题可能是因为您禁用backBarButtonItem了错误的navigationItem. 后退按钮始终由堆栈中的前一个控制器定义。

于 2012-05-24T14:32:19.013 回答
1

如果按钮被阻止,也许你应该隐藏它。因为在我看来,按钮反应迟钝对用户不利。

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];

    [UIView animateWithDuration:0.35f animations:^{
        self.navigationItem.hidesBackButton = editing;       
    }];
}
于 2012-05-24T13:46:07.167 回答
0

self.navigationItem.backBarButtonItem.enabled = NO;

你把上面的代码放在哪里。将上面的代码放在编辑按钮的 IBAction 方法中。

于 2012-05-24T14:00:53.907 回答