我有下一个结构:
那么,你怎么看,我将左上角控制器中的segue应用到GalleryViewController并希望通过segue传递一些值,为此我做了:
if segue.identifier == "goToGalleryVCFromRestaurant" {
let galleryViewController = segue.destination as! GalleryViewController
galleryViewController.photos = self.photos
}
但由于我的GalleryViewController嵌入在UINavController中,因此永远不会执行此部分let galleryViewController = segue.destination as! GalleryViewController
。我该如何解决这个问题?
答案 0 :(得分:1)
试试这个
if let destinationNavigationController = segue.destinationViewController as? UINavigationController {
if let galleryViewController = destinationNavigationController.topViewController as? GalleryViewController {
galleryViewController.photos = self.photos
}
}
答案 1 :(得分:0)
如果您在完成后需要后退按钮,那么您的结构就错了。您需要将先前的视图控制器放在导航控制器中,然后只需将segue设为push segue。问题解决没有大惊小怪。
Navigation Controller
|
|
V
first view controller
|
(push segue)
|
V
second view controller
如果您这样做,那么将直接转到第二个视图控制器,并且您将有一个后退按钮,可以将您带回第一个视图控制器。