StoryBoard - UITabBarController + UINavigationController - 从一个导航控制器跳转到另一个导航控制器

时间:2013-06-22 03:01:08

标签: ios objective-c uinavigationcontroller storyboard uitabbarcontroller

我有以下故事板设置

当用户点击保存按钮时,我需要从BodyMapViewController跳转到MoleDetailsView控制器(如图所示)

我可以使用模态视图,这很容易,但问题是我希望用户能够从MoleDetailsView返回MoleHistory和dermalHistory视图

基本上我需要执行以下步骤:

  • 切换标签
  • 通过DermalHistoryView导航,然后通过MoleHistoryView导航到MoleDetails视图

Storyboard

1 个答案:

答案 0 :(得分:1)

我们的想法是您需要切换标签并手动修改视图层次结构,以便显示正确的视图。

首先,抓住控制另一个选项卡的导航控制器。然后,您可以使用NSMutableArray实例化视图层次结构,如下所示:

-(void)pushToMoleDetailViewController:(id)detailItem
{

    UINavigationController *navCon = [self.navigationController.tabBarController.viewControllers objectAtIndex: 1];

    UIStoryboard *storyboard = self.storyboard;
    DermalHistoryViewController *dermalHistory = [storyboard instantiateViewControllerWithIdentifier:@"DermalHistoryViewController"]

    //configure dermal history here


    NSMutableArray *viewControllers = [[self navigationController].viewControllers mutableCopy];
    [viewControllers addObject: dermalHistory];

    MoleHistoryViewController *moleHistory = [storyboard instantiateViewControllerWithIdentifier:@"MoleHistoryViewController"]

    //configure mole history here
    [viewControllers addObject: moleHistory];

    MoleDetailsViewController *moleDetails = [storyboard instantiateViewControllerWithIdentifier:@"MoleDetailsViewController"]

    //configure mole details here
    [viewControllers addObject: moleDetails];



    navCon.viewControllers = viewControllers;
    self.navigationController.tabBarController.selectedIndex = 1;
}

看看这个问题: Push segue without animation