TableViewControllerが埋め込まれたViewControllerがInterfaceBuilderにあります(TableViewControllerの機能を他の場所で再利用しています)。UIViewControllerのNavigationControllerを使用できるように、TabelViewControllerのデリゲートを埋め込まれているUIViewControllerに戻す必要があります(埋め込まれたTableViewControllerの行をクリックすると、新しいViewControllerが表示されます...)。
これをすべて機能させるためのデリゲートがあります。唯一の問題は、デリゲートをどこに設定するかです。awakeFromNib
ペン先が読み込まれ、すべてのIBOutletが設定されると呼び出されることを読みました(埋め込まれたTableViewControllerはIBOutletです)。コードをステップスルーすると、アプリが最初に起動したときにこの関数が呼び出されることがわかります。ただし、後でデリゲートを呼び出すと(行がクリックされたとき)、デリゲートはnull
です。デリゲートをに設定するとviewDidLoad
、すべてがうまく機能します。
awakeFromNibが機能しない理由はありますか?とにかくviewDidLoadでこれを行う必要がありますか?
ありがとう!