IOS:故事板和类

时间:2016-10-19 14:49:42

标签: ios storyboard uipopovercontroller

我正在尝试使用弹出控制器在应用程序中进行一些额外的导航。由于故事板似乎没有单独的弹出控制器,我在故事板中创建了一个UIViewController。然后我创建了一个popover类popoverVC。 popboard类没有出现在故事​​板中VC的身份检查器中的类的下拉列表中,但是当我输入时,它似乎需要,即在关闭并重新打开故事板时,VC仍然与popover class。

但是,当我尝试按住Ctrl键单击从故事板中VC中的元素拖动到助理编辑器中popoverVC类中的方法或属性时,它不需要。

将故事板中的ViewController与类链接的正确方法是什么?作为一个相关的问题,尽管我在故事板中将VC的宽度设置为较窄,但应用程序忽略了该宽度并加载了popover全屏。

1 个答案:

答案 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