我有一個基於標籤欄的應用程序,每個標籤欄項目上都有導航。 當我導航到任何標籤欄項目上的另一個視圖,然後單擊標籤欄項目上,然後調用該標籤欄項目上的根視圖控制器。 就像PopToRootView。 我們可以禁用這種情況嗎?禁用導航到根視圖的標籤欄
6
A
回答
3
雖然他們說你不應該子類UINavigationController
,但你可以通過將UINavigationController
的子類作爲子類並覆蓋- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;
方法。
這樣做(而不是調用超級popToRootViewController)將阻止視圖控制器在您單擊選項欄項目時彈出。它可能會讓你陷入某種問題,但希望它對你有用。
6
是的,你可以通過你的視圖控制器上執行UITabBarControllerDelegate
方法禁用自動popToRootViewController
:
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
if(self.navigationController == viewController) {
return NO;
}
return YES;
}
感謝:Disable action - user taps on tabbar item to go to root view controller
2
- 在你的頭文件包含UITabBarControllerDelegate。
試試這個:
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController { if(bool_youDontWantPopToRootView) return (tabBarController.selectedViewController != viewController); return YES; }
對於bool_youDontWantPopToRootView,您可以添加條件到它時,你希望它表現得像默認行爲。
1
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;
傳遞時「NO」中的動畫參數,你將被引導到根視圖而沒有任何動畫
你不需要,而你任何選項卡欄上挖掘其導航控制器的默認行爲,以便使用此方法它維護自己的一堆VCs
相關問題
- 1. 從導航欄視圖控制器導航到標籤欄視圖控制器
- 2. 的Xcode 4教程導航欄,標籤欄,表視圖
- 3. IOS5:如何從視圖導航到標籤欄控制器
- 4. 離開導航控制器,並返回到標籤欄視圖
- 5. 在根視圖中隱藏導航欄?
- 6. 應用與標籤欄和導航欄
- 7. 導航視圖和標籤欄讓iPhone應用程序退出
- 8. 導航欄的標題視圖重疊
- 9. ios標籤欄導航
- 10. 標籤導航欄隱藏
- 11. 導航欄中的標籤欄隱藏
- 12. 導航欄內的標籤欄
- 13. 如何停止在移動視圖上打開導航欄的導航標籤?
- 14. 從導航欄中的圖標切換到標籤
- 15. Bootstrap導航欄(隨頂欄)錨標籤導航導航欄後面的內容
- 16. 使用MBProgressHUD只禁用導航項但不是標籤欄
- 17. 基於導航的應用+標籤欄
- 18. 動態禁用導航按鈕和標籤欄
- 19. 諮詢與標籤欄和導航欄
- 20. 隱藏標籤欄和導航欄
- 21. 導航欄和標籤欄當旋轉
- 22. UIView導航欄和標籤欄下
- 23. 如何設置「更多」標籤欄的編輯視圖的導航欄黑色?
- 24. 登錄後使用標籤欄導航
- 25. 禁用頂部導航欄
- 26. 將標籤欄和導航欄添加到應用程序
- 27. 導航欄按下視圖
- 28. 導航欄搜索視圖
- 29. 子視圖添加到導航欄ios
- 30. 刪除UI導航欄/標籤欄和視圖之間的細線?
請問您可以告訴我什麼是 的含義 - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated; 在動畫參數中傳遞爲「NO」。 – Himanshu 2010-01-15 03:54:52
@mjdth你有沒有機會知道麻煩不是「蘋果拒絕的應用程序」?否則,它就像魅力一樣。感謝您的提示。 – 2012-02-03 13:56:02