如何在 iOS 中禁用导航栏
Posted
技术标签:
【中文标题】如何在 iOS 中禁用导航栏【英文标题】:How to disable navigation bar in iOS 【发布时间】:2014-02-27 10:26:22 【问题描述】:我想在添加子视图时禁用导航栏,并在删除子视图后再次启用它。怎么做。显示操作表时的类似操作。
【问题讨论】:
【参考方案1】:在斯威夫特中:
self.navigationController?.setNavigationBarHidden(true, animated: true)
【讨论】:
【参考方案2】:使用(目标-C):
[self.navigationController setNavigationBarHidden:YES animated:YES];
【讨论】:
我需要禁用它并让它看起来像 ActionSheet 一样褪色。 将导航栏的 alpha 值设置为 0.6 或 0.5 以进行淡入淡出,当需要正常时,将其重置为 1。 navigationBar.alpha=0.5f; 这可行,但状态栏现在在 ios7 中淡出 这出乎意料。因为状态栏将具有 alpha 1。您可以尝试更改状态栏类型 lightcontent。如果问题仍然存在,对不起兄弟。【参考方案3】:请注意,如果您想避免以这种方式再次启用它们,您可能必须跟踪最初禁用的按钮。
我也没有检查这是否包括后退按钮。我猜它没有,所以如果需要,你也必须考虑到这一点。
NSArray* allBarButtons = [self.navigationController.navigationBar.topItem.leftBarButtonItems arrayByAddingObjectsFromArray:self.navigationController.navigationBar.topItem.rightBarButtonItems];
for (UIBarButtonItem* barButton in allBarButtons)
barButton.enabled = NO;
【讨论】:
【参考方案4】:在 Swift 4 中,将下面的代码放在 ViewController 的 viewDidLoad()
中。
self.navigationController?.isNavigationBarHidden = true
【讨论】:
【参考方案5】:self.navigationController.navigationBar.topItem.leftBarButtonItem.enabled = NO;
self.navigationController.navigationBar.topItem.rightBarButtonItem.enabled = NO;
self.navigationController.navigationBar.topItem.backBarButtonItem.enabled = NO;
【讨论】:
【参考方案6】:[[self navigationController] setNavigationBarHidden:YES 动画:YES];
【讨论】:
以上是关于如何在 iOS 中禁用导航栏的主要内容,如果未能解决你的问题,请参考以下文章