我有SplitviewController
个Detailviews
{Webviews
,Tableviews
,常规UIViews
}。
举个例子,我在顶部有一个NavigationController
,然后浏览一些表格。
最后,我展示了一些Content
,让我们说UIWebview
。我将iPad旋转为纵向,并在工具栏中添加Button
,显示popOverController
。
在Buttonclick
我说:
if (!popoverController) {
if (self.view.window != nil) {
popoverController = [[UIPopoverController alloc] initWithContentViewController: [appDelegateiPad naviPad]];
popoverController.delegate = self;
}
}
在这里,我实例化一个PopOverController
,而Content
是我从中断点开始的splitview的左侧部分。一切都很好。
但是当我旋转时,我收到了这个警告:
CoreAnimation: ignoring exception: Popovers cannot be presented from a view which does not have a window.
在屏幕上popOverController重新出现空内容(我会说黑色半透明),但我不知道为什么,因为我解雇了它,因为我只在buttonclick上创建了一个实例,所以不能再使用另一个实例。
这让我疯狂了好几天。
任何(!)帮助表示赞赏!
-(void) showPopOver:(id) sender {
NSLog(@"showing popover?");
if (!popoverController) {
if (self.view.window != nil) {
popoverController = [[UIPopoverController alloc] initWithContentViewController:[appDelegateiPad naviPad]];
//RootViewController *r = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle: nil];
// popoverController = [[UIPopoverController alloc] initWithContentViewController:r];
//popoverController.popoverContentSize = CGSizeMake(320, 800);
//popoverController.delegate = self;
}
}
if (![popoverController isPopoverVisible]) {
[popoverController presentPopoverFromBarButtonItem:barButton3 permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
//[popoverController presentPopoverFromRect:CGRectMake(10, 10, 20, 20) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];
}
else {
[popoverController dismissPopoverAnimated:NO];
}
}