[英]Can a UITabBarController be a segue.destinationViewController?
[英]viewDidLoad() of segue.destinationViewController called twice before prepareForSegue()
所以我想做的是通过didSelectRowAtIndexPath中的prepareForSegue方法的sender参数从tableViewController将对象发送到collectionViewController,但是由于某种原因,该collectionViewController的viewDidLoad方法在prepareForSegue之前被调用了两次。 这是tableViewController中的相关代码:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let challenge = dataModel.challenges[indexPath.row]
performSegueWithIdentifier("ShowChallengeSegue", sender: challenge)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
...
else if segue.identifier == "ShowChallengeSegue" {
let controller = segue.destinationViewController as! ChallengeViewController
controller.challenge = sender as! Challenge
}
}
添加一堆打印语句后,依次发生以下情况:
我不知道为什么会这样,不胜感激。
编辑 -我用tableViewController替换了collectionViewController,并且看起来一切正常,因此可能与UICollectionViewController有关。
您必须从单元而不是整个控制器那里获取了segue,以便两次执行segue
请从控制器中获取密码,然后尝试
要么
添加此代码
override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool {
return false;
}
@格沃齐·索科洛夫斯基
在情节提要中检查您的xib文件。 我认为您从按钮或任何其他视图链接了segue。 应该使用UIViewcontroller设置segue,然后可以调用performSegueWithIdentifier
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.