1

我有一个主/详细视图,它通过情节提要 segue 打开一个弹出视图。主视图控制器的导航栏上有一个添加按钮,可以正常工作。

我添加了一种编辑模式,通过在编辑模式下选择表格单元格来调用相同的弹出框。它从 [self performSegueWithIdentifier:@"addQuery" sender:self] 失败;陈述。弹出窗口中的 viewDidLoad 被调用,但之后抛出异常。

我没有调用 presentPopoverFromBarButtonItem - 它似乎来自 performSegueWithIdentifier。

毫无疑问,主视图控制器有一个窗口 - 单击该视图的表格单元格以启动失败的整个过程。

弹出框是导航控制器序列的开始,这可能是问题的一部分。当它真正被按钮调用时,一切正常,只是试图以编程方式调用它失败了。

我尝试更改 performSegueWithIdentifier 的“发件人”无济于事。

我怀疑这个问题与没有被按钮调用的 segue 有关,我不知道如何伪造它。

有任何想法吗?

4

2 回答 2

1

ipad popover segue 的工作方式似乎存在一些错误 - 请参阅Wayne Hartman 的博客文章

一个简单的测试显示 viewWillAppear 在 vi​​ewDidLoad 之后被调用。

我想我理解这个问题......还没有找到解决方案。

调用方法的顺序是...

  1. [启动转场]
  2. viewDidLoad
  3. prepareForSegue
  4. 视图将出现

我将我的初始化代码移到 viewWillAppear 方法中——它起作用了。

一般来说,我觉得在 viewWillAppear 而不是 viewDidLoad 中初始化可能是个好主意。

于 2012-05-08T00:55:51.103 回答
0

我有个类似的问题:

我正在使用 UIDocumentInteractionController 在 Kaynote 应用程序中打开一个 kaynote 文档。我正在使用相同的代码:

[docController presentOpenInMenuFromBarButtonItem:_actionBarButtonItem animated:YES];

上面的代码是从 actiobBarButtonItem 打开弹出窗口,其中包含我想用来打开文件的应用程序选项。如果我从 DetailViewController 得到相同的东西,我会收到与该线程的作者相同的错误消息:“无法从没有窗口的视图中呈现弹出框”

我能够为我的问题找到一个快速的解决方案。我不确定它是否与您的相关。我没有使用“presentOpenInMenuFromBarButtonItem”,而是使用了“presentOpenInMenuFromRect”,仅此而已。您只需要定义弹出框出现的正确位置

于 2012-06-24T13:28:57.640 回答