我正在使用一個tabbar,每個tab都有一個導航控制器,而這又有一堆視圖。每個視圖都有自己的視圖控制器,但現在這並不重要。觀看導航控制器中的主要視圖嗎?
讓我們有一個標籤1,導航控制器1的視圖A,B,C。 但是,應用程序的性質決定了視圖B是主視圖。
所以我想要的是,默認情況下(在應用程序第一次或重新啓動後),當我點擊標籤1時,我會看到B視圖和後退按鈕到一個視圖。
我該如何做到這一點?
我正在使用一個tabbar,每個tab都有一個導航控制器,而這又有一堆視圖。每個視圖都有自己的視圖控制器,但現在這並不重要。觀看導航控制器中的主要視圖嗎?
讓我們有一個標籤1,導航控制器1的視圖A,B,C。 但是,應用程序的性質決定了視圖B是主視圖。
所以我想要的是,默認情況下(在應用程序第一次或重新啓動後),當我點擊標籤1時,我會看到B視圖和後退按鈕到一個視圖。
我該如何做到這一點?
您可以爲標籤欄控制器設置委託並實施tabBarController:didSelectViewController:
來檢測有人點擊標籤。如果您檢測到A即將被選中,而您希望顯示B,您可以告訴A的控制器使用其導航控制器推動B的控制器。
嘗試初始化,推動視圖B(無動畫)到視圖A.在viewDidLoad中導航堆棧
你可以使用的UINavigationController的setViewControllers:animated:
。 根據您的確切需求,您可以在您的應用代理applicationWillEnterForeground:
或applicationDidBecomeActive:
方法中設置此值。
我記得有一個蘋果示例應用程序完全做到這一點。總的想法是,保存最後一個可見視圖控制器(或只是硬編碼一個你想要的),然後使用的東西,像這樣把它推到可見狀態:
[myNavigationController pushViewController:viewControllerToBeVisible animate:NO];
你想要展現應用tabBarController:didSelectViewController:
,並根據哪個viewController被選中來處理不同的情況。
爲什麼我發現自己無法理解你的問題?該死的!!! – brianLikeApple
爲了正確理解這個問題,人們必須牢固地理解視圖和控制器之間的區別,理解視圖控制器有一個內置的主視圖,理解UITabbarController - > UINavigationController - >任何ViewControllers堆棧的典型選項卡應用層次結構。並瞭解這種應用程序的典型UI工作流程。 我暗示了所有這些問題。 –