UISplitViewController 弹出框为空白

Posted

技术标签:

【中文标题】UISplitViewController 弹出框为空白【英文标题】:UISplitViewController popover is blank 【发布时间】:2012-02-01 16:36:34 【问题描述】:

我使用 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];

这似乎工作正常。当应用程序进入纵向模式时,导航栏中会添加一个“浏览”按钮。单击此按钮可完美显示隐藏视图以及选项卡。我可以在选项卡之间切换并处理弹出窗口中显示的视图。当点击弹出框以外的区域时,弹出框会按预期消失。

两件不工作的是

    每次应用切换到纵向模式时,弹出框都必须自行显示,而无需用户选择添加到导航栏的按钮 在某些情况下,我需要以编程方式关闭弹出框。

我已经尝试过以下代码:

- (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】:

使用 performSelector:withObject:afterDelay: 修复了问题

【讨论】:

以上是关于UISplitViewController 弹出框为空白的主要内容,如果未能解决你的问题,请参考以下文章

UISplitViewController - 主弹出框 - 肖像模式:如何自定义/删除最顶层的边框?

UISplitViewController 在菜单弹出框可见的情况下旋转时缩小左侧

如何以弹出框样式显示 UISplitViewController 的主视图?

在 iPhone 6 Plus 上关闭 UISplitViewController 弹出框时 UIWebView 被拉伸

在弹出窗口中显示 UISplitViewController

是否可以在 uipopovercontroller 中有一个 uisplitviewcontroller?