我有一個關於將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. 在哪裏可以找到express.js設置
- 2. ASP主頁可以在哪裏設置?
- 3. 我可以在哪裏設置UINavigationControllers supportedOrientations?
- 4. 哪裏可以設置系統屬性
- 5. 我在哪裏可以設置spark.eventLog.enabled?
- 6. HttpContext.User可以在哪裏設置?
- 7. 哪裏可以爲java webservices設置maxarraysize?
- 8. 哪裏可以放置CFLOCK?
- 9. 哪裏可以放置@XmlElement?
- 10. 哪裏可以放置InvokeRepeating?
- 11. 哪裏可以放置AutoMapper.CreateMaps?
- 12. Omniauth Tumblr設置:我在哪裏可以找到設置憑據?
- 13. 哪裏(設置)IN(設置)
- 14. 我可以在哪裏設置notes.ini位置?
- 15. 哪裏可以找到mysql啓動變量的設置位置?
- 16. 如何以及在哪裏returnUrl設置,是否可以覆蓋?
- 17. 哪裏可以設置條件與CTE中的哪裏條款使用Rownumber
- 18. 哪裏可以找到設備樹?
- 19. 哪裏可以Ejabberd.yml?
- 20. 我在哪裏可以設置在Windows上make.exe的路徑?
- 21. 在哪裏可以在XCode 8中設置View Controller的Storyboard ID?
- 22. 我在哪裏可以找到拱門/設置源?
- 23. 設計:在哪裏可以放置經理選項?
- 24. 在哪裏可以設置Windows XP中CurrentUICulture的初始值?
- 25. 我在哪裏可以找到Sharepoint插件VS2008的設置
- 26. 我在哪裏可以在payPal中設置IPN網址?
- 27. 我在哪裏可以在ASP.NET網頁中設置CurrentUICulture?
- 28. 哪裏可以找到Firebase設置的「桶」細節?
- 29. 哪裏可以在rails上設置jruby的java選項?
- 30. 我在哪裏可以保存小部件的設置?
檢查我所提供的代碼來禁用輕敲後退按鈕 –