2012-02-01 3 views
1

Я использую UISplitViewController с UITabbarController как главный просмотр и контроллер навигации в виде подробного представления. Каждая из вкладок на главном представлении содержит контроллер навигации. Когда выбрана какая-либо из вкладок на главном просмотре, на навигаторе просмотра подробного представления отображается представление.UISplitViewController popover is blank

recentsviewController = [[RecentsViewController_ipad alloc]initWithNibName:@"RootViewController" bundle:nil]; 
recentsNav = [[UINavigationController alloc] initWithRootViewController:recentsviewController]; 

//similarly rootNav and favNav 

NSArray* controllers = [NSArray arrayWithObjects:recentsNav,self.rootNav,favNav,nil]; 
self.tabbarController.viewControllers = controllers; 

detailViewController=[[LoginViewController_ipad alloc]init]; 
detailNav=[[UINavigationController alloc]initWithRootViewController:detailViewController]; 

splitViewController =[[UISplitViewController alloc]init]; 
splitViewController.viewControllers=[NSArray arrayWithObjects:self.tabbarController,self.detailNav,nil]; 
    splitViewController.delegate = self.detailViewController; 

[self.window addSubview:splitViewController.view]; 
[self.window makeKeyAndVisible]; 

Это похоже на работу. Когда приложение переходит в портретный режим, кнопка «Обзор» добавляется в панель навигации. Нажатие этой кнопки показывает скрытый вид, а вкладки отлично. Я могу переключаться между вкладками и работать с представлениями, отображаемыми в popover. При нажатии на другую, кроме области popover, popover отклоняется, как ожидалось.

Две вещи, которые не работают в

  1. поповер должен показать на своих собственных каждый раз, когда приложение переключается в портретный режим без того, чтобы пользователь выбрать кнопку добавлен в навигационной панели
  2. На в некоторых случаях мне нужно программно отказаться от popover.

Я попытался код Фолля:

- (void)splitViewController: (UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc { 
barButtonItem.title = @"Browse"; 
[[self navigationItem] setLeftBarButtonItem:barButtonItem]; 
self.appDelegate.rootPopoverButtonItem = barButtonItem; 
self.appDelegate.splitViewPopover = pc; 
[self.appDelegate.splitViewPopover presentPopoverFromBarButtonItem:self.appDelegate.rootPopoverButtonItem permittedArrowDirections:UIPopoverArrowDirectionUp animated:NO]; 
} 

Это добавляет черный полупрозрачный поповер каждый раз при изменении ориентации. Как мне показать, что показывает кнопка просмотра при нажатии? Обычное увольнение от POPVOVERAnimated, похоже, не работает здесь.

Любая помощь приветствуется.

ответ

0

Использование performSelector: withObject: afterDelay: исправлена ​​проблема