如何跳转到iOS dev中另一个UITab下的其他UINavigationController?

时间:2014-09-29 01:47:07

标签: ios objective-c iphone uinavigationcontroller

我有三个标签,即MessageContactMore。每个选项卡都是UINavigationController。在Contact标签中,我们可以通过添加一些朋友来创建群聊。单击Create按钮后,视图将导航到Message选项卡中的新视图控制器。但是,MessageContact标签中的导航控制器不同;因为它们是平行的。所以我需要你的帮助,并告诉我如何实现这样的功能。

这是我的代码片段,但它不起作用,只返回Message的根视图,而不是testvc视图控制器。

- (IBAction)createGroupButtonPressed:(UIButton *)sender {
   UIStoryboard *storyboard = [self storyboard];
   UIViewController *testvc = [storyboard instantiateViewControllerWithIdentifier:@"testvc"];
   UIViewController *messageTab = [storyboard instantiateViewControllerWithIdentifier:@"messageTab"];

   [self.navigationController popToRootViewControllerAnimated:YES];
   [self.tabBarController setSelectedIndex:0];

   [messageTab.navigationController pushViewController:testvc animated:YES];
}

谢谢。

1 个答案:

答案 0 :(得分:0)

您的方法存在缺陷,因为您正在创建messageTab视图控制器的新实例 - 您需要引用现有实例,该实例可从标签栏控制器的viewControllers属性中获取 - < / p>

- (IBAction)createGroupButtonPressed:(UIButton *)sender {
   UIStoryboard *storyboard = [self storyboard];
   UIViewController *testvc = [storyboard instantiateViewControllerWithIdentifier:@"testvc"];
   UINavigationController *messageTab = self.tabBarController.viewControllers[0];
   [self.navigationController popToRootViewControllerAnimated:YES];
   [self.tabBarController setSelectedIndex:0];
   [messageTab pushViewController:testvc animated:YES];
}