【发布时间】:2015-10-06 10:17:18
【问题描述】:
当我有时需要使用 performSegueWithIdentifier 时,我有一个复杂的应用程序。我不能用 IB 触发器替换它,必须以编程方式完成!有时我在 UIButton 的操作中甚至在委托方法中将它们称为 collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)
问题是,如果我两次快速触发事件,例如通过双击 UIButton,我会将 destinationViewController 两次推送到 navigationController 的堆栈中,这不是我想要的。我只希望它被推送一次。 prepareforSegue 也被调用了两次。
例子:
func addDeal(sender: UIBarButtonItem) {
self.performSegueWithIdentifier("segueDeal", sender: sender)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "segueDeal") {
(segue.destinationViewController as! DealVC).deal = self.deal
}
}
【问题讨论】:
-
从标签中删除目标 c,因为您的问题只涉及 swift 语言
-
你在
prepareForSegue做什么? -
是swift还是Objective-C对我来说无关紧要。我只是想要一种优雅的方式来做到这一点
-
@Paulw11 添加了
prepareForSegue
标签: ios objective-c iphone swift