如何制作没有 xib 或故事板 vc 标识符的视图控制器?

Posted

技术标签:

【中文标题】如何制作没有 xib 或故事板 vc 标识符的视图控制器?【英文标题】:How to make a view controller without a xib or a storyboard vc identifier? 【发布时间】:2016-01-10 08:36:41 【问题描述】:

我想知道如何在不使用xibstoryboard 的情况下制作viewcontroller。所以在这种情况下,我会得到viewcontroller

   PopupViewController* vc = [[PopupViewController alloc] init];
    [self addChildViewController:vc];
    [self.view addSubview:vc.view];
    [vc didMoveToParentViewController:self];

我知道它必须与重写 init 方法有关,因为我们没有使用 initWithCoder

我知道我必须创建一个视图并将其设置为 PopupViewController 的 self.view,但我想知道我该怎么做。

编辑:是的,创建xib file 或在storyboard 中添加view controller 可能更容易,这是为了深入了解view controllers 的工作原理。

【问题讨论】:

在分配时或添加到超级视图之前将框架添加到您的视图控制器。还可以为您的视图进行一些视图自定义,例如背景颜色等。 Is there a way to create the controller and the UIView programatically and not use the interface builder?的可能重复 【参考方案1】:

初始化视图的最佳位置是在PopupViewControllerloadView 方法中。比如:

- (void)loadView 
   self.view = [MyViewClass new];

然后,在MyViewClass initWithFrame: 方法中构建所有子视图并为其设置约束。如果您没有使用约束,请覆盖 layoutSubviews 方法。

【讨论】:

以上是关于如何制作没有 xib 或故事板 vc 标识符的视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MyScene(SKScene 的子类)中打开 xib 或故事板窗口?

如何从视图控制器推送 xib

如何在没有 .xib 或故事板文件的情况下向应用程序添加菜单?

非故事板 xib 的容器视图未显示

故事板中的自定义 UIView

将单独的 xib 视图控制器加载到情节提要导航中[重复]