美文网首页
iOS - xib作为创建出控制器的view

iOS - xib作为创建出控制器的view

作者: Howeix | 来源:发表于2017-06-17 19:34 被阅读0次

    我们知道通过xib来创建控制器的 view 系统会找在工程目录中与自己名字相一致的xib比如:

    [[VideoViewController alloc] init] //创建一个视频控制器

    1.VideoViewController.xib
    2.VideoView.xib

    首先会去查找有没有VideoViewController为前缀的xib如果有则加载, 如果没有会继续查找VideoView为前缀的xib如果有就加载. 找到之后就会以xib所指定的view作为创建出来VideoViewController控制器的view.

    1. 在以xib作为创建出来控制器的view, 如遇以下报错信息:

      -[UIViewController _loadViewFromNibNamed:] loaded the "VideoView" nib but the view outlet was not set.

    应该如何处理?

    首先, 我们要明确此问题的原因. 从错误信息中我们可以了解到 加载 "VideoView" nib文件时并没有设置 "outlet", 换言之当控制器加载此 xib 时并没有指定该 xib中哪个控件作为控制器的 view, 如果xib中描述了若干个控件(view)那么系统怎么知道你需要将哪个控件作为该控制器的 view 创建并显示出来呢?

    1 点击"File's owner"设置该 xib 的类型为控制器的类型:

    图片 0.png

    2 然后我们只要明确指定 xib中哪个view 作为控制器的view就可以解决该问题:


    图片 1.png

    另外, 注意控制器view的类型必须要和 xib 中指定控件(view)的类型一致:

    图片 2.png

    如果 xib 中指定的控件和控制器view的类型不匹配,则会报错:

    -[XXXViewController loadView] loaded the "XXXView" nib but didn't get a "XXXView".

    希望可以帮助到大家,谢谢!

    相关文章

      网友评论

          本文标题:iOS - xib作为创建出控制器的view

          本文链接:https://www.haomeiwen.com/subject/nbjbqxtx.html