iPad, стек навигации в основном представлении, выбор элемента в основном представлении и обновление подробного представления

Я создаю свое первое приложение и искал ответы, но не нашел ответа. Может быть, это ключевые слова, которые я использовал в поиске. Итак, вот моя проблема.

Это приложение для iPad (Xcode 4) с шаблоном master-detail. Предполагается, что основной вид должен отображать список категорий, при выборе каждой категории список статей будет перемещен в основной вид (с помощью кнопки «Назад» на панели навигации, чтобы вернуться к списку категорий).

Я могу заставить его работать до сюда. После выбора статьи я не могу обновить метку в подробном представлении с названием статьи.

Это мои коды в AppDelegate.m:

MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil];
UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];

ArticlesViewController *articlesViewController = [[ArticlesViewController alloc] initWithNibName:@"ArticlesViewController" bundle:nil];
UINavigationController *articlesNavigationController = [[UINavigationController alloc] initWithRootViewController:articlesViewController];

DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController];

articlesViewController.mainDetailViewController = detailViewController;

self.splitViewController = [[UISplitViewController alloc] init];
self.splitViewController.delegate = detailViewController;
self.splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, detailNavigationController, nil];
self.window.rootViewController = self.splitViewController;

Если я изменю следующую строку:

self.splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, detailNavigationController, nil];

to

self.splitViewController.viewControllers = [NSArray arrayWithObjects:articlesNavigationController, detailNavigationController, nil];

Ярлык будет обновлен.

Любые указатели? Я видел руководства по основному представлению, соединяющемуся с подробным представлением, где основное представление имеет только один уровень навигации, но, похоже, не могу найти тот, который имитирует мою ситуацию. Опять же, может быть, я просто не знаю правильных ключевых слов для поиска.

Заранее благодарю.


person Yenyen Suwardy    schedule 13.12.2011    source источник


Ответы (1)


Мне удалось заставить его работать с помощью NSNotificationCentre.

В ArticlesViewController (второй уровень, который отображается при выборе категории в MasterViewController) я публикую локальное уведомление.

В DetailViewController я добавляю наблюдателя для уведомления.

Таким образом, я могу обновить метку в подробном представлении.

Авторы этого замечательного видеоурока: http://youtu.be/vnkNUoRtk1E

person Yenyen Suwardy    schedule 14.12.2011