如何在iOS中禁用导航栏

时间:2014-02-27 10:26:23

标签: ios ios7 uinavigationcontroller uinavigationbar childviewcontroller

我想在添加子视图时禁用导航栏,并在删除子视图后再次启用它。怎么做。显示操作表时的类似操作。

6 个答案:

答案 0 :(得分:2)

在斯威夫特:

self.navigationController?.setNavigationBarHidden(true, animated: true)

答案 1 :(得分:1)

使用(Objective-C):

[self.navigationController setNavigationBarHidden:YES animated:YES];

答案 2 :(得分:1)

请注意,如果您想避免以这种方式再次启用它们,您可能需要跟踪最初禁用的按钮。

我还没有检查是否包含后退按钮。我猜它没有,所以如果需要,你也必须考虑到这一点。

NSArray* allBarButtons = [self.navigationController.navigationBar.topItem.leftBarButtonItems arrayByAddingObjectsFromArray:self.navigationController.navigationBar.topItem.rightBarButtonItems];
for (UIBarButtonItem* barButton in allBarButtons) {
     barButton.enabled = NO;
}

答案 3 :(得分:1)

Swift 4 中,将下面的代码放在ViewController的viewDidLoad()内。

self.navigationController?.isNavigationBarHidden = true

答案 4 :(得分:0)

self.navigationController.navigationBar.topItem.leftBarButtonItem.enabled = NO;
self.navigationController.navigationBar.topItem.rightBarButtonItem.enabled = NO;
self.navigationController.navigationBar.topItem.backBarButtonItem.enabled = NO;

答案 5 :(得分:0)

[[self navigationController] setNavigationBarHidden:YES animated:YES];