iPad: объединить концепцию SplitViewController и NavigationController в RootView? - PullRequest
2 голосов
/ 18 апреля 2010

У меня проблемы с объединением двух концепций использования SplitViewController в моем главном представлении и наличия контроллера "RootView", который управляет всплывающим / боковым представлением таблицы левой панели.

Я хочу, чтобы левый "RootView" действовал как меню навигации, но как мне это сделать, когда RootView привязан через MainWindow.xib к левой панели SplitView?

По сути, я хочу, чтобы левая навигация работала так же, как навигация по развернутым папкам встроенных почтовых приложений. Существует ли пример проекта iPad, который использует SplitView и NavigationView для левой / корневой панели?

1 Ответ

4 голосов
/ 19 апреля 2010

После создания проекта SplitView откройте файл RootViewController.m и посмотрите на метод -tableViewDidSelectRowAtIndexPath. Вы увидите, что элемент, который вы щелкнули, затем устанавливается как свойство DetailViewController.

Дизайн, который вы ищете, потребует, чтобы вы поместили другой контроллер представления в стек навигации. Поэтому, если вы представляете почтовое приложение, когда пользователь выбирает папку, detailView не обновляется, но следующий уровень папки «Входящие» помещается в стек. Когда пользователь выбирает сообщение из папки «Входящие», подробный вид обновляется содержимым сообщения, а RootViewController просто остается там, где он находится.

в методе -tableViewDidSelectRowAtIndexPath объявите новый контроллер представления

NextViewController *nextView = [[NextViewController alloc] initWithStyle:UITableViewStylePlain];
//This assumes you have another table view controller called NextViewController
//We assign it to the instance variable "nextView"

[self.navigationController pushViewController:nextView animated:YES];
//tells the navigation controller to "slide" the "nextView" instance on top
//if animated:NO it wouldn't slide, it would just "update"

[nextView release];
//release the viewController, it's now retained automatically by the NavigationController

Имеет ли это смысл?

...