1

只是想自学故事板并遇到了一个我希望人们可以回答的问题。

我想创建一个可重复使用的上部工具栏,以便万一我不得不更改它,它会更新我的所有场景。我在情节提要中创建了一个大小合适的 ViewController。然后我使用菜单的标识符将它加载到我的每个场景的子视图中。这似乎工作得很好(尽管,请随时告诉我这是错误的做法)。

这就是问题开始的地方。在那个顶部工具栏上,我有一个 UIButton,我将它连接到故事板中另一个大小的 ViewController 作为弹出框。基本上,一个下拉菜单。如果我只是加载顶部工具栏,则可以正常工作。如果我使用 segue 仅将常规按钮连接到该弹出式场景,那也可以。但是,如果我尝试单击按钮并在工具栏位于子视图中时跟随 segue,我会因 EXC_BAD_ACCESS 崩溃。我认为我不允许从 subView 产生 popOver 或在 subview 中跟随 segue?后者似乎是错误的,因为您可以有效地使用任何 UI 对象执行此操作。

我还应该如何处理这个?

谢谢!

4

1 回答 1

0

我建议使用 UINavigationController 并将工具栏设置为包含您的 UIButton(作为 UIBarButtonItem)。如果您在“跟踪”工具栏或按钮时遇到任何问题,您可以继承 UINavigationController,将 UIButton(或整个工具栏)添加为子类的属性,并通过 self.navigationController 属性从任何后续视图访问它(可能违反严格的 OO,但您可以使用协议)。

至于弹出框,我认为您在 iPad 上还可以,但在 iPhone 上不行。github 上有自定义项目来实现 UIPopoverController,实际上 Facebook 应用程序在其应用程序中使用自定义弹出框来通知通知。如果您尝试显示 UIPopoverController,iPhone 会引发异常。

于 2012-02-27T16:59:28.693 回答