3

私は 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];
4

0 に答える 0