我使用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];
这似乎工作正常。当应用程序进入纵向模式时,导航栏中会添加“浏览”按钮。单击此按钮可显示隐藏的视图以及完全正常的选项卡。我可以在选项卡之间切换,并处理弹出窗口中显示的视图。当弹出区域以外的其他区域时,弹出窗口将按预期被解除。
两件不起作用的事情是
我试过了foll代码:
- (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似乎在这里不起作用。
感谢任何帮助。
答案 0 :(得分:0)
使用performSelector:withObject:afterDelay:修复了问题