PFLoginViewController
我有一个选项卡栏控制器,它是初始视图控制器,如果用户未登录,它也有一个小狗。登录/注册流程工作正常。
这两个选项卡是 1. a从现在开始我将UICollectionView
称为IntroVC
2. aUITableView
我将称为FeedVC
当用户单击 中的照片时IntroVC
,会触发 Show segue(通过prepareForSegue
),显示第三个屏幕(UIView
),这在技术上不是选项卡。SelectVC
从现在开始,我将其称为。
注意:所有这些屏幕也嵌入(ded)在导航控制器中。
显示SelectVC
一张照片,UIButton
用户可以按下一个触发 Show segue 和 Unwind segue,将图像推送到FeedVC
. 我创建 Unwind segue 的原因是因为没有它,图像将推入FeedVC
(第二个选项卡),但第一个选项卡仍会突出显示。
我用 Unwind segue 解决了这个问题,但我注意到我遇到了一个问题,在选择后,当我按下第一个选项卡(Intro VC)时,导航栏有一个后退按钮,我使用SelectVC
按钮按下的次数越多图像,我必须在IntroVC
. 我对如何解决这个问题感到非常困惑。很明显,我没有正确连接流,而且似乎IntroVC
是多次生成的?
当我在模拟器中浏览 segues 时,我在控制台中收到以下消息:
Nested pop animation can result in corrupted navigation bar
Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
任何帮助将不胜感激!
相关代码如下。
IntroVC.swift
@IBAction func unwindToIntroView(segue: UIStoryboardSegue) {
self.tabBarController!.selectedIndex = 1
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showFeedItem" {
let selectScreenVC = segue.destinationViewController as! SelectScreenViewController
let cell = sender as! UICollectionViewCell
if let indexPath = self.collectionView!.indexPathForCell(cell) {
self.navigationController?.popViewControllerAnimated(true)
selectScreenVC.currentVenue = venueItems[indexPath.row]
}
}
SelectVC.swift
@IBAction func pushSelection(sender: UIButton) {
var feedItem = FeedItem()
if let currentItem = currentItem {
feedItem.nName = currentItem.nName
feedItem.imageFile = currentItem.lgImg
feedItem.userName = PFUser.currentUser()!.username!
feedItem.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in
self.performSegueWithIdentifier("unwindToVenueView", sender: self)
})
}
}
我知道这是奇怪的结构,如果我缺少完全理解所需的信息 - 请告诉我,我会相应地进行编辑。