viewDidAppearがTabbarcontroller> NavigationController> UITableViewで起動しない
-
22-07-2019 - |
質問
現在、タブの1つにNavigationControllerが設定されたTab Bar Controllerがあり、そのNavigationcontrollersビューに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
ナビゲーションツールバーを使用して戻ると、前のビューに戻ります
今、戻ったときにTableViewを更新する必要がありますが、 viewDidAppear
の呼び出しは機能しません。
Tableviewと同じ ViewController
クラスに UINavigationDelegate
を追加し、-(void)navigationController:(UINavigationController *)navigationController didShowViewController:を呼び出してみましたコード>
しかし、それはうまくいきませんでした。また、Tab Bar Controllerと同じデリゲートを追加して、同じ navigationController didShowViewController:
を追加しようとしましたが、それも失敗しました。
ビューがロードされるたびにこのテーブルを更新するにはどうすればよいですか
解決 2
Found Interfaceファイルにデリゲート宣言がありませんでした。ドッ!また、多くの場所で、NavigationControllersの最初のビュー(テーブルビュー)に追加したときにのみ機能することを試みました。
他のヒント
コードから viewDidAppear
を呼び出す必要はありません。 Cocoa Touchはあなたのためにそれをするべきです。
テーブルビューの reloadData
メソッドを呼び出して、コンテンツを更新します。