Всплывающее окно UISplitViewController пустое - PullRequest
1 голос
/ 01 февраля 2012

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

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];

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

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

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

Я попробовал следующий код:

- (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];
}

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

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

1 Ответ

0 голосов
/ 29 января 2013

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

...