userInteractionEnabled 在 iOS 7 中不起作用
Posted
技术标签:
【中文标题】userInteractionEnabled 在 iOS 7 中不起作用【英文标题】:userInteractionEnabled is not working in 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 的 viewDidLoad
或 viewWillAppear
一起工作正常,但与导航堆栈中的其他控制器不兼容。
【问题讨论】:
self.navigationController.navigationBar.userInteractionEnabled = NO;在 viewDidLoad 中正常工作: 【参考方案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.
您可以尝试清空缓存并清除所有目标,例如 Clean
和 Run
。你可以重置模拟器。
【讨论】:
但是在我这边工作正常可能还有其他问题。可以为您的项目获取可下载链接,以便我为您提供帮助。 在 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"); ?以上是关于userInteractionEnabled 在 iOS 7 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
试图操纵 UISlider 的 userInteractionEnabled 属性:不工作
SKSpriteNode UserInteractionEnabled 不工作
UIView之userInteractionEnabled属性介绍
userInteractionEnabled = YES时如何将触摸事件传递给superview?