如何正确实例化PopoverController

时间:2011-01-23 10:47:13

标签: iphone exception warnings uisplitviewcontroller uipopovercontroller

我有SplitviewControllerDetailviews {WebviewsTableviews,常规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];
}


}

0 个答案:

没有答案