私は通常 UIViews を使用してアプリを作成しますが、これはナビゲーションコントローラーを使用しています。配列にアイテムを追加したいビューを一番上にプッシュしています。ただし、メインのナビゲーションコントローラーメソッドなどにアクセスできません。セットアップは次のとおりです
1) AppDelegate はナビゲーション コントローラーを追加します
[window addSubview:navigationController.view];
2) RootViewController で、新しい UIView をプッシュします
AddNewViewController *addNewViewController = [[AddNewViewController alloc] init];
[self presentModalViewController: addNewViewController animated:YES];
3) AddNewViewController から、メインの RootViewController にアクセスしたいのですが、何にもアクセスできないようです。すべてのメソッドなどは、以前に行ったように (UIViews を使用して) 宣言されています。このコードは、RootViewController で何も見つかりません。
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate.navigationController myFunction];
RootViewController.h ファイルに myFunction があります。以前にこの方法を使用したことがありますが、ナビゲーション コントローラーを使用したことはありません。それはスタックに関係していると思いますが、何が間違っていたのかわかりません!
助けていただければ幸いです!!
* アップデート *
私は今使用しました
AddNewViewController *addNewViewController = [[AddNewViewController alloc] init];
[self.navigationController pushViewController:addNewViewController animated:YES];
ビューコントローラーをプッシュします。私のコードでは、次のコードでテーブルビューにアクセスしてリロードしようとしています
[self.navigationController.mainTableView reloadData];
ただし、mainTableView にはアクセスできません。宣言して同期しましたが、まだ表示されません。また、スタックの要素[0]をループして使用しようとしましたが(以下のように)、それでもどこにも行きませんでした!
NSArray *controllers = [[NSArray alloc] initWithObjects:self.navigationController.viewControllers, nil];
UIViewController *tmpController = [[UIViewController alloc] init];
tmpController = [controllers objectAtIndex:0];