使TabBarController按钮链接到第一个View Controller

时间:2013-07-12 20:03:05

标签: ios cocoa-touch uiviewcontroller storyboard uitabbarcontroller

在我正在处理的应用程序中,我有以下导航图:

SplashScreen(VC) - > TabBarController - > (第1项)导航控制器 - >地图 - >主页                                        - > (第2项)导航控制器 - >列表^

在TabBarController之前是一个启动画面(UIViewController),它有一个按钮,连接到通向交换机的模态选项。所有其他的细分都在推动。

项目#1是一个视图控制器,它包含一个对象映射,其中包含指向单独对象主页的链接,该主页包含有关所选对象的详细信息。

Item#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的文档并浏览了他们的示例代码,但我没有找到专门解决我的问题的应用程序。

谢谢!

1 个答案:

答案 0 :(得分:0)

传递给tabBarController:didSelectViewController的viewController应该是您的导航控制器。所以你应该能够调用它的popToRootViewController方法。