我设计了一个带有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];