从模态视图控制器呈现弹出视图

4

我正在尝试从UIModalPresentationPageSheet的按钮中弹出一个Popover。这会导致应用程序崩溃,并在控制台返回以下消息:

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

我的代码在标准视图控制器中可以正常工作。正如该提示信息所示,有些关于模态窗口的东西阻止了它的显示。我在这个主题上做了相当多的搜索,但是没有找到解决方案。我必须相信它是可能的,因为我在像1Password这样的应用程序中看到了非常相似的东西。

非常感谢任何指针和/或建议。

3个回答

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才有。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接