只是想自学故事板并遇到一个问题,我希望人们可以回答。
我想创建一个可重复使用的上部工具栏,以便万一我必须更改它,它会更新我的所有场景。我在故事板中创建了一个大小的ViewController。然后我使用菜单的标识符将其加载到我的每个场景的子视图中。这似乎工作得很好(尽管,请随意告诉我这是错误的方法)。
这是问题的起点。在那个顶部工具栏上,我有一个UIButton,我在故事板中连接到另一个大小的ViewController作为popover。基本上,下拉菜单。如果我只是加载顶部工具栏,工作正常。如果我使用segue将常规按钮连接到该弹出场景,那也可以。但是,如果我尝试单击按钮并在工具栏位于子视图中时跟随segue我崩溃了EXC_BAD_ACCESS。我认为我不允许从子视图中生成popOver或在子视图中跟踪segue?后者似乎错了,因为你有效地使用任何UI对象。
我该怎么处理呢?
谢谢!
答案 0 :(得分:0)
我建议使用UINavigationController并设置工具栏以包含您的UIButton(作为UIBarButtonItem)。如果你有“跟踪”工具栏或按钮的任何麻烦你可以继承UINavigationController,添加UIButton(或整个工具栏)作为子类的属性,并通过self.navigationController属性从任何后续视图访问它(可能违反严格的OO,但你可以使用协议)。
至于popover,我认为你在iPad上没问题但在iPhone上没有。 github上有自定义项目来实现UIPopoverController,事实上Facebook应用程序在其应用程序中使用自定义弹出窗口进行通知。如果您尝试显示UIPopoverController,iPhone会引发异常。