Iphone UISplitViewController popover为空

Iphone UISplitViewController popover为空,iphone,uipopovercontroller,ipad,Iphone,Uipopovercontroller,Ipad,我使用UISplitViewController,其中UITabbarController作为主视图,导航控制器作为详细视图。主视图上的每个选项卡都包含一个导航控制器。选择主视图上的任何选项卡后,将在局部视图导航控制器上推送视图 recentsviewController = [[RecentsViewController_ipad alloc]initWithNibName:@"RootViewController" bundle:nil]; recentsNav = [[UINavigati

我使用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];
这似乎很有效。当应用程序进入纵向模式时,导航栏上会添加一个“浏览”按钮。单击此按钮将显示隐藏视图以及选项卡。我可以在选项卡之间切换,并处理弹出窗口中显示的视图。当点击除popover区域外的其他区域时,popover将按预期关闭

两件不起作用的事情是

  • 每次应用程序切换到纵向模式时,popover必须自己显示,而用户无需选择添加到导航栏的按钮
  • 在某些情况下,我需要按程序取消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];
    }
    
    这会在每次方向更改时添加一个黑色半透明的popover。如何使其显示单击浏览按钮时显示的内容? 通常的解雇在这里似乎不起作用


    非常感谢您的帮助。

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