【问题标题】:UISplitViewController popover is blankUISplitViewController 弹出框为空白
【发布时间】: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];

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

两件不工作的是

  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 在这里似乎不起作用。

感谢任何帮助。

【问题讨论】:

    标签: iphone uipopovercontroller ipad


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      • 2018-05-06
      • 1970-01-01
      相关资源
      最近更新 更多