iPad, стек навигации в главном представлении, выберите элемент в главном представлении и обновите подробный вид - PullRequest
0 голосов
/ 13 декабря 2011

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

Это приложение для 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];

до

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

Метка будет обновлена.

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

Спасибо заранее.

1 Ответ

0 голосов
/ 14 декабря 2011

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

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

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

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

Кредиты переходят в этот великолепный видеоурок: http://youtu.be/vnkNUoRtk1E

...