0

在我正在工作的應用程序,我有以下的導航圖:製作TabBarController按鈕鏈接到第一視圖控制器

閃屏(VC) - > TabBarController - >(物品1)導航器 - >地圖 - >首頁 - >(item2)導航控制器 - >列表^

前面的TabBarController是一個啓動屏幕(UIViewController),其中一個按鈕連接到通向總機的模式序列。其他所有賽段都在推進。

項目#1是一個視圖控制器,其中包含一個對象映射表,其中包含到單獨對象主頁的鏈接,其中包含有關所選對象的詳細信息。

項目#2是一個UITableViewController,它具有對象列表並鏈接到同一對象主頁UIViewController。

這兩個都嵌套在包含每個項目和浮標主頁的導航控制器中。

現在,如果您在地圖上選擇一個浮標並調出浮標主頁,然後轉到列表選項卡並選擇一個浮標,如果您再次選擇地圖選項卡,它仍會顯示主頁爲第一個選定的浮標。

我想要做的就是讓用戶點擊任一選項卡,直接將它們帶到地圖或列表中 - 永不回到先前選擇的浮標。

我一直在尋找了一段時間,並且我來最接近的是這樣的,我在裏面AppDelegate.m的didSelectViewController:

NSInteger tag = viewController.tabBarItem.tag; 

if (tag == 4) 
{ 
    NSLog(@"Map Button........"); 

    UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"TheMap"]; 
    self.window.rootViewController = vc; 

    UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController.tabBarController; 
    [navigationController pushViewController:vc animated:YES]; 
} 

這讓我回想起地圖,但沒有來自Nav Controller的導航元素。

這是我第一個iOS應用程序,我已經瀏覽了一些Apple的Docs並查看了他們的示例代碼,但是我沒有找到專門解決我的問題的代碼。

謝謝!

回答

0

傳遞給tabBarController:didSelectViewController的viewController應該是您的導航控制器。所以你應該能夠調用它的popToRootViewController方法。

+0

感謝您的重新編碼!抱歉我的反應慢。 (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {0}視圖控制器popToRootViewController; ---- 這是我正在做的,但它告訴我,沒有接口popToRootViewController – DV77

+0

感謝您的重新編碼!抱歉我的反應慢。
' - (空)tabBarController:(*的UITabBarController)tabBarController didSelectViewController:(UIViewController的*)的viewController { [的viewController popToRootViewController]' ---- 這就是我想要做的,但它的告訴我沒有popToRootViewController的接口 – DV77

相關問題