我正在寻找执行以下操作的最佳实践方法:
我在NavigationController中嵌入了两个TabBarController视图,并且我不想将其作为选项卡包含但嵌入在NavigationController中:
VenueView(CollectionViewController)
SelectView(ViewController)
在VenueView(2)中,我有以下代码来调出SelectView(3):
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let selectVC: SelectViewController! = self.storyboard?.instantiateViewControllerWithIdentifier("selectVC") as! SelectViewController
selectVC.currentVenue = venueItems[indexPath.row]
presentViewController(selectVC, animated: true, completion: nil)
}
此segue有效,但SelectView(3)顶部没有导航栏,尽管它嵌入在单独的NavigationController中。如果我将它连接到IB中的其他NavController,它将采用/成为BarTabController中的第三个选项卡。我不想要那个。
如何连接它以便有一个NavBar(后退按钮将返回到任一视图)但没有Tab?
此外,SelectView(3)上还有一个按钮。当点击此按钮时,我希望它能够转换为FeedView(1) - 同时保留一些数据,即“推入Feed”。我应该使用什么样的segue?我尝试了很多组合并遇到了一些奇怪的错误,我发现View管理非常困惑。
下面的故事板图片供参考 视图按从上到下的顺序排列(1-3):
答案 0 :(得分:1)
为了做到这一点,您需要解决问题,您需要像现在一样展示包含SelectView
但不包含SelectView
的导航控制器。
您应该将故事板标识符设置为第3个导航控制器并应用此更改:
let selectNavigationController = self.storyboard?.instantiateViewControllerWithIdentifier("selectNavigationController") as! UINavigationController
let selectVC = selectNavigationController.topViewController as! SelectViewController
selectVC.currentVenue = venueItems[indexPath.row]
presentViewController(selectNavigationController, animated: true, completion: nil)