我正在尝试使用弹出控制器在应用程序中进行一些额外的导航。由于故事板似乎没有单独的弹出控制器,我在故事板中创建了一个UIViewController。然后我创建了一个popover类popoverVC。 popboard类没有出现在故事板中VC的身份检查器中的类的下拉列表中,但是当我输入时,它似乎需要,即在关闭并重新打开故事板时,VC仍然与popover class。
但是,当我尝试按住Ctrl键单击从故事板中VC中的元素拖动到助理编辑器中popoverVC类中的方法或属性时,它不需要。
将故事板中的ViewController与类链接的正确方法是什么?作为一个相关的问题,尽管我在故事板中将VC的宽度设置为较窄,但应用程序忽略了该宽度并加载了popover全屏。
答案 0 :(得分:0)
这不能仅通过故事板来实现,而是应用子容器概念。
您应该创建一个UIView
(容器)并将其添加到应包含popover的viewcontroller中,并将popover viewcontroller的视图添加到所述容器中。
现在有三件事你应该按特定顺序执行,即:
1)使用popover viewcontroller在包含的viewcontroller上调用addChildViewController:
。
2)在容器视图上调用addSubview:
并添加popover viewcontroller视图。
3)使用包含viewcontroller的popover viewcontroller调用didMoveToParentViewController:
。
同样,删除viewcontroller时执行以下操作:
1)使用willMoveToParentViewController:
在弹出窗口控制器上调用nil
以删除父连接。
2)在popover viewcontroller的视图中调用removeFromSuperview
。
3)最后在popover viewcontroller上调用removeFromParentViewController
。
有关详细信息,请参阅this answer。