2017-01-11 2 views
0

私の値を再ロードできるようにしたいDetailViewController.次のView Controllerで値を呼び出すために、選択したindexPathをどのように分割するのですか?Swift CollectionViewCellからindexPath値をどのように分割するのですか?

私が持っている私の didSelectItemAt

let monsters: Monsters! 

let mons: [Monsters] = Data().mons 
monsters = mons[indexPath.row] 

self.performSegue(withIdentifier: "DetailVC", sender: monsters) 

答えて

2

あなたはDetailViewControllermonsterプロパティを作成し、あなたがセグエを行い、VCの内側その後prepare(for segue:)

// This would be a property at the top of DetailViewController 
var monster:Monster? 

を呼び出すときにそれを割り当てることができ、 selectedMonsterのプロパティを作成して、indexPathに基づいて割り当てます。

var selectedMonster:Monster? 

あなたユーザーがセルを選択したときに次に:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "DetailVC" { 
     let detailVC = segue.destination as! DetailViewController 
     detailVC.monster = selectedMonster 
    } 
} 

あなたが呼び出す方法を確認したいことがあります。

この同じVCで
selectedMonster = mons[indexPath.row] 

performSegue(withIdentifier:)が呼び出されたときに、このメソッドが呼び出されますperformSegue(withIdentifier:)、通常は送信者にself、つまり:

performSegue(withIdentifier: "DetailVC", sender: self) 
+0

ありがとう多く。これは、年齢のために私を悩ませている – baxu

+0

@バクー - あなたは大歓迎です!喜んで助ける – Pierce

関連する問題