Статический SegmentedControl в NavigationController, загружающий соответствующие ViewControllers - PullRequest
0 голосов
/ 10 марта 2009

У меня есть 2 отдельных TableViewControllers. В одном конкретном случае я хотел бы иметь возможность загрузить ViewController, который поместит SegmentedControl в NavigationController ... который, в свою очередь, загрузит соответствующий TableViewController.

В настоящее время у меня есть SegmentedControl, просто нажимающий правильный TableViewController, и он отлично работает, если я вручную инициирую push. Однако, если я попытаюсь сделать push в любое время до ViewDidAppear, то pushView TableViewController ничего не отобразит ... хотя все будет хорошо прослеживаться.

И просто отметим, что оба TableViewConroller достаточно разные, поэтому я не могу просто использовать один контроллер и просто переключать источник данных.

Есть предложения?

Ответы [ 2 ]

1 голос
/ 11 марта 2009

Я действительно нашел лучшее решение для моей проблемы, так что если кому-то интересно ...

Чтобы создать суб-навигационный контроллер в viewController ...

  • Создание UINavigationController в viewController
  • назначить его делегату ViewController
  • добавить представление navigationController как подпредставление viewController
  • скрыть viewController's Панель навигации (self.navigationController.navigationBarHidden = ДА;)
  • в viewController реализует следующие 2 протокола:

<code>
-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
    [viewController viewWillAppear:animated];
}
-(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
    [viewController viewDidAppear:animated];
}
Бэм, вы получили UINavigationController внутри UINavigationController> viewController
Надеюсь, это кому-нибудь поможет!
1 голос
/ 10 марта 2009

Вместо того, чтобы помещать контроллеры табличного представления в контроллер nav, вы, вероятно, захотите иметь контроллер представления, который содержит два контролера таблицы. Затем добавьте одно из табличных представлений как подпредставление представления контроллера представления. То есть когда сегментированный контроллер переключается, вы делаете что-то вроде:

[self.tableController1.view removeFromSuperview];
[self.view addSubview self.tableConttroller2.view];

Возможно, вам также придется отправлять соответствующие view[Will/Did][Appear/Disappear] сообщения на контроллеры таблиц, чтобы убедиться, что они правильно инициализированы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...