我正在尝试从UIModalPresentationPageSheet中的按钮呈现Popover。它崩溃了应用程序并将以下消息返回到控制台:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Popovers cannot be presented from a view which does not have a window.'
我的代码在标准视图控制器中工作正常。正如消息所暗示的那样,有一些模式阻止它显示。我已经对这个主题进行了大量的搜索,但我找不到解决方案。我不得不相信它是可能的,因为我在1Password等应用程序中看到了类似的东西。
非常感谢指针和/或建议。
答案 0 :(得分:0)
以下代码似乎对我有用,试试这个:
[_pPopOverController presentPopoverFromRect:CGRectMake(0, 0, 768, 900) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
答案 1 :(得分:0)
我不知道您使用的是哪个SDK,但5.1版本没有任何异常。我正在显示文本字段中的弹出框,并且以下代码有效:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[_popController presentPopoverFromRect:textField.frame
inView:textField.superview
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
return NO;
}
答案 2 :(得分:0)
我敢打赌,问题是您正在传递视图控制器而不是inView参数的视图。它试图获取UIViewController的.window,而UIViewControllers没有UIViews那样。