无法从没有窗口错误的视图中显示弹出窗口

时间:2013-10-09 07:28:21

标签: ios objective-c uiviewcontroller uipopovercontroller uipopover

我设计了一个带有xib的ViewController“CommentsViewController”,我试图在点击它时在网格单元格上的popovercontroller上呈现它...以下是我的代码

CommentsViewController *popOverVC=[[CommentsViewController alloc]init];
            popOverVC.delegate=self;
            popOverVC.commentBoxTextView.text=currentExternalGridCell.ratingValueLabel.text;
            popOverVC.contentSizeForViewInPopover=popOverVC.view.frame.size;
            UIPopoverController *popover =[[UIPopoverController alloc]initWithContentViewController:popOverVC];
            popover.delegate=(id)self;
            popoverC=popover;




            [popover presentPopoverFromRect:currentExternalGridCell.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

但同样会出错..

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIPopoverController _commonPresentPopoverFromRect:inView:permittedArrowDirections:animated:]: Popovers cannot be presented from a view which does not have a window.'

我已经检查了self.view和currentexchangegrid单元格的值,当我调用presentfromRect方法时,两者都不是nil ...

修改

所以我找到了一个解决方案而且很容易......

在显示popover之前,先检查self.view.window!= nil 即,

if(self.view.window!=nil)
      [popover presentPopoverFromRect:currentExternalGridCell.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

0 个答案:

没有答案