如何在iOS上禁用导航栏

5

我想在添加子视图时禁用导航栏,一旦删除子视图,再次启用导航栏。如何实现这个功能?当操作表显示时也有类似的操作。

6个回答

2

在Swift中:

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

2

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

我还没有检查是否包括后退按钮。如果需要,您还需要考虑这一点。

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

1
在Swift 4中,将下面的代码放置在您的ViewController的viewDidLoad()中。
self.navigationController?.isNavigationBarHidden = true

1
使用(Objective-C):
[self.navigationController setNavigationBarHidden:YES animated:YES];

我需要禁用它并使其呈现淡化的外观,就像ActionSheet一样。 - Arock
2
将导航栏的 alpha 值设置为 0.6 或 0.5,以实现淡入淡出效果。当需要恢复正常时,将其重置为 1。navigationBar.alpha=0.5f; - Abin George
1
那个可以运行,但状态栏现在在iOS7中正在淡出。 - Arock
1
这是意料之外的。因为状态栏将具有 alpha 1。您可以尝试更改状态栏类型 lightcontent。如果问题仍然存在,很抱歉兄弟。 - Abin George

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

0

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接