通过Xib自定义UIViewController实例化时报错的解决

自定义一个UIViewController,名为FooViewController

因为希望各个VC独立分开,所以没有将自定义控制器的UI放到storyboard里,而是单独做了一个xib文件。

注意Xcode自定义继承自UIViewController的类且创建xib文件时,其xib中File’s Owner应该就是你自定义的类名,即FooViewController.

下面我们编写使用它的代码:

let fooVC = UIViewController(nibName: "FooViewController", bundle: nil) as! FooViewController

运行一下,崩在上面一句:提示无法将UIViewController对象转换为FooViewController!?

我们索性将后面的强转去掉试一下:

let fooVC = UIViewController(nibName: "FooViewController", bundle: nil)

再次运行,上面一句可以通过,不过App还是崩掉了,提示UIViewController不符合神马键值观察。估计是我在xib中绑定了IBOutlet,但是运行时由于类不对头没有找到。

不管怎样,正确的写法如下:

let fooVC = FooViewController(nibName: "FooViewController", bundle: nil)

现在一切正常了,里面的布局和IBOutlet也都OK了。

猜你喜欢

转载自blog.csdn.net/mydo/article/details/80693673