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 被拉伸