【问题标题】:userInteractionEnabled is not working in iOS 7userInteractionEnabled 在 iOS 7 中不起作用
【发布时间】:2013-09-30 07:22:26
【问题描述】:

self.navigationController.navigationBar.userInteractionEnabled = NO;

不适用于viewDidLoad:viewWillAppear: 方法。即我仍然可以使用导航栏上的按钮。 iOS 6 一切正常。

如何在 iOS 7 中禁用 UINavigationBar 上的用户交互?

更新:

我注意到一件奇怪的事情,self.navigationController.navigationBar.userInteractionEnabled = NO 似乎与 RootviewController 的 viewDidLoadviewWillAppear 一起工作正常,但与导航堆栈中的其他控制器不兼容。

【问题讨论】:

  • self.navigationController.navigationBar.userInteractionEnabled = NO;在 viewDidLoad 中正常工作:

标签: ios uiviewcontroller uinavigationcontroller uinavigationbar ios7


【解决方案1】:

Xcode 5(5A1314)iOS 7 一起使用,这行代码可以很好地启用和禁用用户与导航栏的交互。

self.navigationController.navigationBar.userInteractionEnabled = YES;
// No for Disable and YES for enable.

或者你可以尝试另一种方式,比如

[self.navigationController.navigationBar setUserInteractionEnabled:NO];
// No for Disable and YES for enable.

您可以尝试清空缓存并清除所有目标,例如 CleanRun。你可以重置模拟器。

【讨论】:

  • 但是在我这边工作正常可能还有其他问题。可以为您的项目获取可下载链接,以便我为您提供帮助。
  • 在 navigationController 的 RootViewController 上工作正常。尝试在导航中使用其他控制器。
【解决方案2】:

您可以尝试不同的方法并直接禁用按钮

[self.navigationItem.rightBarButtonItem setEnabled:NO];
[self.navigationItem.leftBarButtonItem setEnabled:NO];

【讨论】:

  • 您能否验证您是否可以访问 UINavigationController? NSLog(@"%@",self.navigationController)
  • 是的。我确实可以访问 navigationController 和 navigationBar。奇怪的是,在 navigationController 的 RootViewController 中似乎一切正常。
  • 怎么样 NSLog(@"self.navigationItem.rightBarButtonItem"); ?
猜你喜欢
  • 1970-01-01
  • 2013-10-19
  • 2013-09-16
  • 2013-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多