В моем приложении UISplitViewController у меня есть
- RootViewController - просмотр контроллера на левой панели.
- DetailViewController - просмотр контроллера на правой панели.
При касании одного элемента (который находится в UITableView) в RootViewController будет установлен новый контроллер представления, как показано ниже:
[detailViewController setViewControllers:[NSArray arrayWithObjects:newViewController, nil] animated:animated];
//detailPane is my DetailViewController
Все работает довольно хорошо в ландшафтном режиме.Тем не менее, я не могу заставить UISplitViewController работать так, как мне нужно, в портретном режиме, то есть всплывающая кнопка RootViewController не отображается надлежащим образом в моем DetailViewController, когда я запускаю и использую приложение в режиме переноса.
КогдаЯ запускаю приложение в портретном режиме, кнопка всплывающего окна появляется соответственно.Но после нажатия одного элемента во всплывающем окне и установки нового контроллера представления на detailViewController кнопка исчезла.Мне нужно повернуть устройство в альбомную ориентацию, а затем снова в книжную ориентацию, чтобы кнопка снова появилась.
Я установил делегата моего UISplitViewController в AppDelegate моего приложения следующим образом:
self.splitViewController.delegate = self.detailViewController
А вот моя реализация UISplitViewControllerDelegate
- (void)splitViewController: (UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc {
NSLog(@"Will hide view controller");
barButtonItem.title = @"Menu";
[self.navigationItem setLeftBarButtonItem:barButtonItem];
self.popoverController = pc;
}
- (void)splitViewController: (UISplitViewController*)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem {
NSLog(@"Will show view controller")
NSMutableArray *items = [self.navigationItem.leftBarButtonItems mutableCopy];
[items removeAllObjects];
[self.navigationItem setLeftBarButtonItems:items animated:YES];
[items release];
self.popoverController = nil;
}
Любая подсказка или помощь очень ценится.Спасибо.