我有一个关于将navigationBar.isUserInteractionEnabled设置为false的问题。我将它设置在viewDidLoad和viewDidLayoutSubviews中。但是这个设置不起作用,因为即使我设置为false,该值也是如此。 只有当我回到前一个视图(当单击backButton并且navigationBar.isUserInteraction应该设置为false时),我需要设置为false。 我该怎么办?还有其他代表吗?或者我需要在调用viewDidLoad之后设置定时器。 Here is an image to make it clear what I mean哪里可以设置NavigationController.NavigationBar.isUserInteractionEnabled
回答
如果你是具体的关于禁用导航栏的用户交互你可以做它的一些特殊原因,通过调用
斯威夫特:
self.navigationController?.navigationBar.isUserInteractionEnabled = false
的Objective-C:
[self.navigationController.navigationBar setUserInteractionEnabled:false];
编辑2:
我需要设置为false,只有当我回到以前的视图(当点击 返回按钮,然后navigationBar.isUserInteraction应该 被设置为false)
你不能禁用viewWillDisappear中的导航栏用户交互viewController,因为如果backButton按时间点击viewWillDisappear被调用ViewController从导航堆栈中删除。
所以,当你调用self.navigationController你的导航控制器是零。
最简单的解决方案,添加您自己的后退按钮,并在实际弹出VC之前禁用导航栏的用户交互。
在你secondVC
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"back" style:UIBarButtonItemStyleBordered target:self action:@selector(handleBack)];
self.navigationItem.leftBarButtonItem = backButton;
// Do any additional setup after loading the view from its nib.
}
-(void)handleBack {
[self.navigationController.navigationBar setUserInteractionEnabled:false];
[self.navigationController popViewControllerAnimated:true];
}
这将做的工作
编辑3:
你需要设置导航栏的用户交互您可以通过禁用达到同样的效果左右条形按钮项的用户交互
for item in self.navigationItem.leftBarButtonItems! {
item.isEnabled = false
}
for item in self.navigationItem.rightBarButtonItems! {
item.isEnabled = false
}
您可以根据您的逻辑在viewDidLoad,viewWillAppear或适合您的代码的地方启用和禁用它们。
Objective-C的
for(UIBarButtonItem *item in self.navigationItem.leftBarButtonItems) {
[item setEnabled:false];
}
for(UIBarButtonItem *item in self.navigationItem. rightBarButtonItems) {
[item setEnabled:false];
}
提问标记的语言Objective C的兄弟 –
@庵埠,KARTHIK导航栏的用户交互更新的答案: lemme更新 –
@ anbu-karthik:感谢编辑:)错过了它,而在Xcode中再次复制代码:) –
- 1. 我在哪里可以设置spark.eventLog.enabled?
- 2. HttpContext.User可以在哪里设置?
- 3. 在哪里可以找到express.js设置
- 4. 哪里可以设置系统属性
- 5. 哪里可以为java webservices设置maxarraysize?
- 6. 哪里可以放置@XmlElement?
- 7. 哪里可以放置InvokeRepeating?
- 8. Omniauth Tumblr设置:我在哪里可以找到设置凭据?
- 9. 哪里可以找到mysql启动变量的设置位置?
- 10. 我可以在哪里设置notes.ini位置?
- 11. 哪里可以找到设备树?
- 12. 你可以设置,或在哪里,本地文档根?
- 13. 在哪里可以在XCode 8中设置View Controller的Storyboard ID?
- 14. 哪里可以找到设置网页的UI示例
- 15. 哪里可以在rails上设置jruby的java选项?
- 16. 在哪里可以设置Windows XP中CurrentUICulture的初始值?
- 17. 在char设备中,我可以在哪里放置ioread?
- 18. 这个CSS属性可以在哪里设置?
- 19. 我在哪里可以找到拱门/设置源?
- 20. 我在哪里可以找到NopCommerce插件设置
- 21. 我在哪里可以保存我的tfs扩展的设置
- 22. 设计:在哪里可以放置经理选项?
- 23. 哪里可以设置转换为XAML集合中的项目
- 24. 哪里可以找到链接设置面板
- 25. 我在哪里可以找到声纳的排除设置?
- 26. 我在哪里可以设置在Windows上make.exe的路径?
- 27. 我在哪里可以设置Eclipse C++函数名称样式?
- 28. 哪里可以设置子组件的大小
- 29. 可以找到git的默认用户名设置在哪里
- 30. VWD 2008 Express:我可以在哪里设置绝对定位?
检查我所提供的代码来禁用轻敲后退按钮 –