hidesBackButton / setHidesBackButton无效

时间:2013-07-19 13:04:23

标签: ios uinavigationcontroller uinavigationbar uinavigationitem

我的申请中遇到了一些问题。

在我的应用程序中,有可能编辑一些信息(类似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

请给我任何建议,如何做。

谢谢。

5 个答案:

答案 0 :(得分:12)

使用此:

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

答案 1 :(得分:4)

我知道这已经很晚了,但我看到了同样的事情并找到了解决方案。

似乎hidesBackButton = YES会干扰设置leftBarButtonItem。

请勿使用hidesBackButton,否则您将丢失叠加层。

这似乎是一个错误,但Apple自己的文档对这两个/三个属性的交互非常模糊。

答案 2 :(得分:3)

试试这个..

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

答案 3 :(得分:1)

自iOS 5.0起:

self.navigationItem.leftItemsSupplementBackButton =?;

否 - 拥有leftBarButtonItems会隐藏backButtonItem(默认值), 是 - leftBarButtonItems与backButtonItem共存

然而,似乎仍有一个iOS 7错误,它会不加选择地隐藏(或不隐藏)backButtonItem。

答案 4 :(得分:0)

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