私は 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.'
presentfromRect メソッドを呼び出している間、self.view と currentexchangegrid セルの値が両方とも nil ではないことを確認しました...
編集
だから私は解決策を見つけて簡単でした...
ポップオーバーを表示する前に self.view.window!=nil かどうかを確認してください。つまり、
if(self.view.window!=nil)
[popover presentPopoverFromRect:currentExternalGridCell.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];