0

TableViewControllerが埋め込まれたViewControllerがInterfaceBuilderにあります(TableViewControllerの機能を他の場所で再利用しています)。UIViewControllerのNavigationControllerを使用できるように、TabelViewControllerのデリゲートを埋め込まれているUIViewControllerに戻す必要があります(埋め込まれたTableViewControllerの行をクリックすると、新しいViewControllerが表示されます...)。

これをすべて機能させるためのデリゲートがあります。唯一の問題は、デリゲートをどこに設定するかです。awakeFromNibペン先が読み込まれ、すべてのIBOutletが設定されると呼び出されることを読みました(埋め込まれたTableViewControllerはIBOutletです)。コードをステップスルーすると、アプリが最初に起動したときにこの関数が呼び出されることがわかります。ただし、後でデリゲートを呼び出すと(行がクリックされたとき)、デリゲートはnullです。デリゲートをに設定するとviewDidLoad、すべてがうまく機能します。

awakeFromNibが機能しない理由はありますか?とにかくviewDidLoadでこれを行う必要がありますか?

ありがとう!

4

1 に答える 1

0

awakeFromNib メソッドが正しく機能しない理由については、こちらをご覧ください

viewDidLoad メソッドは、UITableViewDelegate を設定するのに最適な場所であり、他のメソッドで設定することによる実際のメリットはありません。

于 2011-10-04T18:38:33.440 に答える