1

現在、タブの1つにナビゲーションコントローラーが設定されたタブバーコントローラーがあり、次にそのナビゲーションコントローラービュー用にUITableViewペン先が設定されています。これらはすべてIBを通じて設定されており、私はそれを維持したいと思っています。このチュートリアルhttp://twilloapp.blogspot.com/2009/05/how-to-embed-navigation-controller.htmlのよう に、ViewDidLoadが呼び出されたときにビューが完全に読み込まれるようになりました。しかし、コードIEを介してさらにビューをロードすると

MyApp_AppDelegate *delegate = [[UIApplication sharedApplication] delegate];

UINavigationController *nav = (UINavigationController *)delegate.controller.selectedViewController;

newViewController = [[newViewController alloc] initWithNibName:@"newView" bundle:nil];

[nav pushViewController:newViewController animated:YES];

//At this point the view works! and loads

ナビゲーションツールバーを使用して戻ろうとすると、以前のビューに正常に戻ります。戻ったときにテーブルビューを更新する必要がありますが、呼び出しviewDidAppearが機能しません。

UINavigationDelegateテーブルビューと同じクラスに追加してからViewController呼び出してみました- (void)navigationController:(UINavigationController *)navigationController didShowViewController:

しかし、それはうまくいきませんでした。また、タブバーコントローラーと同じデリゲートを追加してnavigationController didShowViewController:そこに追加しようとしましたが、それも失敗しました。

ビューが読み込まれるたびにこのテーブルを更新するにはどうすればよいですか?

4

2 に答える 2

0

インターフェイスファイルにデリゲート宣言がありませんでした。ドー!また、多くの場所で、NavigationControllersの最初のビュー(私のテーブルビュー)に追加したときにのみ機能するようになりました。

于 2009-11-09T17:35:12.477 に答える
0

viewDidAppearコードから呼び出す必要はありません。CocoaTouchがあなたに代わってそれを行うはずです。

テーブルビューのreloadDataメソッドを呼び出して、その内容を更新します。

于 2009-10-30T20:11:51.927 に答える