我有一个iPad SplitViewController应用程序,无论是横屏还是竖屏模式下都隐藏了左侧面板。当应用程序接收到特定通知时,我需要在弹出窗口中显示左侧面板。尽管尝试了许多不同的建议性解决方案,但我仍然无法弄清楚如何实现这一点。
我正在使用MultipleMasterDetailManager实现,其中包括以下代码:
我正在使用MultipleMasterDetailManager实现,其中包括以下代码:
/* forward the message to the current detail view
* all detail views must implement UISplitViewControllerDelegate
*/
-(void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc
{
self.masterBarButtonItem = barButtonItem;
self.masterPopoverController = pc;
barButtonItem.title = NSLocalizedString(@"Show Sidebar", @"Show Sidebar");
[self.currentDetailController.navigationItem setLeftBarButtonItem:self.masterBarButtonItem animated:YES];
}
/* forward the message to the current detail view
* all detail views must implement UISplitViewControllerDelegate
*/
-(void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
//if (![self.currentDetailController isKindOfClass:[SyncSourceDetailViewController class]])
//{
self.masterBarButtonItem = nil;
self.masterPopoverController = nil;
[self.currentDetailController.navigationItem setLeftBarButtonItem:nil animated:YES];
//}
}
类似的方法也存在于详细视图控制器中。
当接收到通知时,我调用的方法如下:
- (void)navigateToLatest
{
[self navigateToDocumentsTab];
[[self dataLoader] navigateToLatest]; // populates data for the left table view
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UIView *view = [[[[[splitViewController viewControllers] objectAtIndex:1] viewControllers] objectAtIndex:0] view];
[self.masterDetailManager.masterPopoverController presentPopoverFromRect:CGRectMake(0, 0, 100, 100) inView:view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
这并不起作用。我也试过使用presentPopoverFromBarButtonItem方法,但在代码中似乎无法找到leftBarButtonItem。
也许我完全走了错路。
UIView *view = [[[[[splitViewController viewControllers] objectAtIndex:1] viewControllers] objectAtIndex:0] view];
,你确定要使用它作为父视图吗? - slf