2010-08-13 45 views
4

我想从UIModalPresentationPageSheet中的按钮提供Popover。它崩溃了应用程序,并将以下消息返回到控制台:莫代尔视图控制器的Present Popover

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Popovers cannot be presented from a view which does not have a window.' 

我的代码在标准视图控制器中正常工作。正如消息所示,有一些关于防止显示的模式。我已经在这个主题上做了大量的搜索,但没有找到解决方案。我必须相信这是可能的,因为我在1Password等应用中看到过类似的东西。

非常感谢指标和/或建议。

回答

0

下面的代码似乎是为我工作,试试这个:

[_pPopOverController presentPopoverFromRect:CGRectMake(0, 0, 768, 900) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES]; 
0

我不知道哪个SDK您使用了,但我不与5.1得到任何异常。我显示从文本字段的酥料饼和下面的代码工作:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 

[_popController presentPopoverFromRect:textField.frame 
           inView:textField.superview 
       permittedArrowDirections:UIPopoverArrowDirectionAny 
           animated:YES]; 
return NO; 

}

0

我敢打赌,问题是,你传递一个视图控制器,而不是一个视图为inView参数。它试图为UIViewController获取.window,并且UIViewControllers没有UIViews。