Ios &引用;func Prepareforsgue“;不调用CollectionView
是否可以使用Ios &引用;func Prepareforsgue“;不调用CollectionView,ios,swift,storyboard,swift3,Ios,Swift,Storyboard,Swift3,是否可以使用shouldPerformSegueWithIdentifier通过以下方法捕捉segue的移动: override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?){ } override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool 以下是我的视图控制器代码: f
shouldPerformSegueWithIdentifier
通过以下方法捕捉segue的移动:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?){
}
override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool
以下是我的视图控制器代码:
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let poke:Pokemon!
if inSearchMode {
poke=filterPokemons[indexPath.row]
} else {
poke=pokemonlist[indexPath.row]
}
shouldPerformSegueWithIdentifier("PokemonDetailVC", sender: poke);
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "PokemonDetailVC" {
if let detailVC = segue.destinationViewController as? PokemonDetailVC{
if let poke = sender as? Pokemon {
detailVC.pokemon=poke;
}
}
}
}
故事板序列参考
试试:
performSegueWithIdentifier("Identifier", sender: self)
而不是:
shouldPerformSegueWithIdentifier("Identifier", sender: self)
当我们使用shouldPerformSegueWithIdentifier时,我们可以通过以下方法捕捉segue的移动:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?){
}
override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool
检查此链接:您需要调用
performSegueWithIdentifier
而不是shouldPerformSegueWithIdentifier
,因为shouldPerformSegueWithIdentifier
方法为您提供了阻止segue发生的机会。从该方法返回NO会导致segue无法执行
如果您想了解有关shouldPerformSegueWithIdentifier
的更多详细信息,请选中此项
其中asperformsguewithidentifier
方法允许将数据从源视图控制器传递到目标视图控制器
因此,现在只需像这样调用performsguewithidentifier
,而不是shouldPerformSegueWithIdentifier
performSegueWithIdentifier("PokemonDetailVC", sender: poke)
在Swift 3.0中
self.performSegue(withIdentifier: "PokemonDetailVC", sender: poke)
没有
sender
是可以的,只需将方法更改为performsguewithidentifier。