从模态回到第一个标签栏
Posted
技术标签:
【中文标题】从模态回到第一个标签栏【英文标题】:Segue back from Modal to First Tab Bar 【发布时间】:2015-08-18 00:25:15 【问题描述】:我有两个 TabBarController 视图嵌入在 NavigationController 中,一个 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),但添加了更多视图控制器(由导航栏中的按钮证明)并且不包含在 TabBarController 中。
创建这个segue的正确方法是什么?我知道如何保存数据,但我的问题更多与从模态视图到 BarTab 的第一个选项卡的正确技术有关。
下图供参考:
【问题讨论】:
【参考方案1】:如果您留在同一个导航堆栈中,您可以使用展开转场。 但是,FeedView 位于不同的导航控制器上。
一种方法是让您的 TabbarController 切换回 FeedbackView(第一个选项卡),使用:
tabBarController.selectedIndex = 0
【讨论】:
您好,感谢您的回答。你会如何建议实施这个?我知道我必须使用dismissViewController
例如返回到第二个选项卡,但是我如何使用上面的 sn-p 然后自动转到第一个选项卡而不显示第二个视图?
是的,你关闭了你的视图,你可以使用 self.tabBarController 来访问 Tabbar VC 并直接设置一个选定的索引,或者在 Tabbar VC 类中创建一个函数来执行它(如果你需要类似的行为在其他 VC 中)。以上是关于从模态回到第一个标签栏的主要内容,如果未能解决你的问题,请参考以下文章