2016-07-05 11 views
0

tableViewのセルをクリックするとsegueを実行する際に問題があります。私はアプリケーション内でストーリーボードを一切使用していない(ストーリーボードファイルを削除した)、どうすればこのセグを実行できるのだろうかと思っていた。 注:iOSスウィフトSegue from Storyboard

  1. 私のtableViewはそれを表示するのViewControllerとは別のファイルです。だから私ののViewControllerに私はこのラインを持っている:

    のtableView = MyTableViewてみましょう(restaurants_data:レストラン、フレーム:CGRect()、スタイル:.Plain) view.addSubview(のtableView)だから、

  2. MyTableView.swift以来の私はself.navigationController

    ような何かを傾けるでdidSelectRowAtIndexPath機能が配置されているファイルがある.showViewController(destinationVC、送信者:ゼロ)?だから、

、私は実行するのですか私がカスタムTableViewを使用していて、私のアプリケーションがStoryBoardを使用していないとすれば、ユーザーがセルをクリックするとセグが発生しますか?事前

+0

'UITableView'をサブクラス化することはお勧めできません:http://stackoverflow.com/a/10250358/1305067。 'UITableView'をカプセル化したい場合は、おそらくビューコントローラをラップして、子ビューコントローラとしてビューに追加します。 'navigationController'にアクセスするには、' MyTableView''の 'init'メソッドの引数として渡します。ところで、ストーリーボードなしでは、AFAIKというセグはありません - 通常の 'pushViewController'メソッドを使用してください。上記のように "didSelectRowAtIndexPath"メソッドがUITableViewクラスの内部であり、UITableViewControllerではなく、そのため動作しない – paulvs

答えて

0

で多くがあなたのtableView

内のViewControllerのための参照を追加し、 VARコントローラにinitのViewControllerでそれを初期化 ありがとう:のUIViewController

controller.presentViewController(viewControllerToPresent:のUIViewController、アニメーション:ブール、completion:block?>)

+0

です。 UITableViewにpresentViewControllerメソッドが含まれていません。 – omzy

+0

しかし、 'viewControllerToPresent.navigationController'には' presentViewController'メソッドがあります。 – paulvs

+0

@paulvsしかし、viewControllerToPresent.navigationController.pesentViewController(viewControllerToPresent:viewControllerToPresent、animated:Bool、completion ..)を呼び出すことは意味がありません。 ' – omzy