ここに私の AppDelegate.m があります
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
EventsMasterViewController *firstViewController = (EventsMasterViewController *)[[navigationController viewControllers] objectAtIndex:0];
self.window.rootViewController = navigationController;
[self.window makeKeyAndVisible];
EventDataController *_myEventsDataController = [[EventDataController alloc] init];
firstViewController.myEventsDataController = _myEventsDataController;
EventDataController *_upcomingEventsDataController = [[EventDataController alloc] init];
firstViewController.upcomingEventsDataController = _upcomingEventsDataController;
EventDataController *_bookmarkedEventsDataController = [[EventDataController alloc] init];
firstViewController.bookmarkedEventsDataController = _bookmarkedEventsDataController;
return YES;
}
私の唯一のビューがMasterViewControllerとDetailViewControllerであり、Navigation Controllerに埋め込まれていたとき、これはうまく機能していました。
次に、TabBarController を追加します。そこで、NavigationController を TabBarController に組み込みました。しかし、私のデリゲートはエラーをスローしています。
示されているように、EventDataController の 3 つのインスタンスを初期化する必要があります。
したがって、「eventsDataControllers を firstViewController に追加できるように、プログラムで tabBarController から navigationController を取得するにはどうすればよいですか?」という質問になると思います。
アップデート
これが私のエラーです。setMyEventsDataController が UINavigationController のメソッドになる方法がわかりません。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UINavigationController setMyEventsDataController:]: unrecognized selector sent to instance