У меня есть TabBarController с 2 вкладками, в одной из них MapView, а в другой простой TableView в NavigationController.Оба отображают данные из одного источника.Если какие-либо данные в таблице касаются, я добавляю DetailViewController в NavigationController и показываю более подробную информацию.Теперь в MapView я также хочу открыть этот DetailViewController, когда данные коснутся карты.Какой лучший способ сделать это?Я пробовал некоторые с уведомлением, но это не работает, потому что TableViewController закончил загрузку (и зарегистрирован как наблюдатель) после отправки уведомления.
Вот мой код:
MapViewController:
- (IBAction)goToNearestEvent:(id)sender {
if (currentNearestEvent) {
[[self tabBarController] setSelectedIndex:1];
NSDictionary *noteInfo = [[NSDictionary alloc] initWithObjectsAndKeys:currentNearestEvent, @"event", nil];
NSNotification *note = [NSNotification notificationWithName:@"loadDetailViewForEvent" object:self userInfo:noteInfo];
[[NSNotificationCenter defaultCenter] postNotification:note];
[noteInfo release];
}
}
TableViewController:
- (void)viewDidLoad {
[super viewDidLoad];
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self
selector:@selector(loadDetailViewForEvent:)
name:@"loadDetailViewForEvent"
object:nil];
}
- (void)loadDetailViewForEvent:(NSNotification *)note {
Event *e = [[note userInfo] objectForKey:@"event"];
[self loadEventDetailViewWithEvent:e];
}
Так что я очень новичок в программировании на iOS / Какао.Возможно, мой подход - неправильный выбор.Поэтому я надеюсь, что кто-нибудь подскажет мне, как правильно решать такие задачи.
Я забыл четко объявить свою структуру:
- UITabBarController
- MapView (1)
- NavigationControllerContainer
- NavigationControllerView (2)
- TableView
Я хочу выдвинуть новый вид из MapView (1) в NavigationControllerView (2).