2017-02-14 2 views
0

私は2つの異なるデフォルトのView Controllerを作成しようとしており、呼び出され、セル内の内容に応じて指定されたアクションを実行します。あなたはメインのストーリーボードにView Controllerを作成して、xibなどを使用しますか?Swift - defaultviewcontrollerループを実装する方法

基本的には、私が解析しているアイテムの最後の(詳細)ページを表示するまで、テーブルビューを作成するXMLファイルがあります。私の理解から、各レベルに対して1を作成するのではなく、同じtableviewcontrollerを複数回使用する方が良いです。私はセグループを作成するはずですか?

現在、正しいセグを使用していることを確認するためのチェックがあります。

はあなたがセグエをpefromでしょう:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    let cell = tableView.cellForRow(at: indexPath as IndexPath) 
    tableView.deselectRow(at: indexPath as IndexPath, animated: true) 
    segueLocation = hNTUL[(indexPath as NSIndexPath).row].locationLevel 
    segueTitle = hNTUL[(indexPath as NSIndexPath).row].locationTitle 
    if segueLocation == "TableView" { 
     performSegue(withIdentifier: "defaultDetailSeague", sender: cell) 
     let destinationVC = DefaultDetailViewController() 
     destinationVC.detailTitle = segueTitle 
    } 
    if segueLocation == "DetailView" { 
     performSegue(withIdentifier: "defaultTableSeague", sender: cell) 
     let destinationVC = DefaultTableViewController() 
     destinationVC.tableTitle = segueTitle 
    } 
} 

私がこのことについて間違った道を行くしようとしているということも可能です。

私はまた、プロジェクトの例を探していますが、正しい方向に私を導くものは見つかりませんでした。

思考?

+0

もっとコードを表示していただきありがとうございますが、下の回答はまだありません。あなたは 'prepare(for:sender:)'の実装が必要です。あなたはそれを持っていません。私の答えで言ったことを、_慎重に読んでください。 – matt

+0

これはあなたが話していることでしょうか? 'FUNC調製オーバーライド(セグエため:UIStoryboardSegueを、送信者:任意){ 場合segue.identifier == "LevelTwo"{ あたかもindexPath = self.tableView.indexPathForSelectedRow { LETコントローラ= segue.destinationしてみましょう! LevelTwoTableViewController 私は自己 'のためのテストを考えていませんが}} }' – Number1

+0

はい、事のちょうどその種、mCaty = mainCat [(NSIndexPathなどindexPath).row] controller.selectedName = mCaty.mainCategoriesTitle てみましょう.tableView.indexPathForSelectedRow'は期待どおりに動作します(私はそれについて間違っている可能性があります)。 – matt

答えて

0

performSegueに電話する場合は、でなく、を作成する必要があります。destinationVCを作成してください。セグーはあなたのためにそれを作成します。 宛先ビューコントローラをコンフィグレーションするにはprepare(for:sender:)を実装し、セグのdestinationをフェッチしてDefaultDetailViewControllerにキャストします。これがまず最初に正しいことを確認してください!

+0

私はコードにコメントすることができますあなたは示しました。示されているように、それは間違っています、そして、私の答えはあなたに理由を教えてくれます。 – matt

関連する問題