从Modal回到First Tab Bar

时间:2015-08-18 00:25:16

标签: ios xcode swift uitabbarcontroller uistoryboardsegue

我在NavigationController中嵌入了两个TabBarController视图,一个View以其自己的NavigationController进行模态显示:

FeedView(1)(TableViewController - >包含在TabBarController中)

VenueView(2)(CollectionViewController - >包含在TabBarController中)

SelectView(3)(ViewController - >从VenueView模态显示)

在VenueView(2)中,我有以下代码来调出SelectView(3):

override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {

    let selectNavigationController = self.storyboard?.instantiateViewControllerWithIdentifier("selectNavController") as! UINavigationController
    let selectVC = selectNavigationController.topViewController as! SelectViewController
    selectVC.currentVenue = venueItems[indexPath.row]

    presentViewController(selectNavigationController, animated: true, completion: nil)
}

这允许我在没有tabbarcontroller的情况下启动SelectView(3),但仍然有一个导航栏。我在SelectView(3)中有一个按钮,我想用它来保存一个对象的数据并进入FeedView(1)。

我尝试了很多方法,但最接近成功的是切换到FeedView(1),但添加了更多的viewControllers(由导航栏中的按钮证明)并且没有包含在TabBarController中。

创建此segue的正确方法是什么?我知道如何保留数据但我的问题更多地与从模态视图到BarTab的第一个标签的正确技术相关。

下面的图片供参考:

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您停留在同一个导航堆栈中,则可以使用展开segue。 但是,FeedView位于不同的导航控制器上。

一种方法是使用以下方法将TabbarController切换回FeedbackView(第一个标签页):

 tabBarController.selectedIndex = 0