3

我的应用程序中有一些问题。隐藏背部按钮/ setHidesBackButton不工作

在我的应用程序中有可能编辑一些信息(如iPhone的联系人)。当您按导航栏右侧的'编辑'按钮时,应该隐藏“返回”按钮,并显示“取消”按钮。

当用户从ViewController直接按下“编辑”按钮时,它可以很好地工作。

但是,当用户创建一个新的广告时,带编辑功能的视图控制器应该在编辑模式下打开。我这样称呼:

VICarInfo * vc = [[VICarInfo alloc] init]; 
[vc setCurrentAdv:adv]; 
[self.navigationController pushViewController:vc animated:YES]; 

if (editMode) { 
    [self.navigationItem setHidesBackButton:YES animated:NO]; 
    [vc btnEditClick]; 
} 

而“后退”按钮并没有消失。

我也尝试隐藏ViewWillAppear,ViewDidLoad或ViedDidLayout子视图中的按钮,也不成功。

Simulator

请给我任何建议,如何做到这一点。

谢谢。

回答

4

我知道这是晚了,但我看到了同样的事情,并找到了解决办法。

看来hidesBackButton = YES会干扰设置leftBarButtonItem(s)。

不要使用hidesBackButton,你会失去重叠。

这看起来像一个错误,但苹果自己的文档对这两个/三个属性的交互非常模糊。

2

试试这个..

[self.navigationItem setLeftBarButtonItem:nil]; 
[self.navigationItem setHidesBackButton:YES]; 
+0

没有:(不是这样工作的... – Andrey

+0

现在你得到了什么问题 –

+0

只是一样,没有什么变化 – Andrey

1

由于iOS的5.0:

self.navigationItem.leftItemsSupplementBackButton =;

NO - 具有leftBarButtonItems隐藏backButtonItem(默认), YES - leftBarButtonItems并存与backButtonItem

有似乎仍然是然而在iOS 7的错误,即隐藏(或不)的backButtonItem不加区别。

12

使用此:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc] init]]; 
+3

这真是太棒了!谢谢! – nonamelive

+0

欢迎朋友!!! – CoderSaru

0

试穿真实的设备。在真实设备上显示自定义图像。但不是iOS模拟器。如果你在模拟器上测试,你会看到ios的默认后退按钮。