之前喵神在他的书的第二版里有提到 override方法 initialize 方法来做 Method Swizzling 但在第三版更新的时候删除了这部分内容,因为喵神觉得应该用更加 swift 化的方法来做
现在求问改怎么改或者怎么重写財能继续使用 Method Swizzling 呢?
画控件、连线等操作都与OC下的非常类似,这里不赘述
但是问题来了,xib画好了连线也连好了,生成的Controller却总是空白一片为什么呢?
原因是Swift下,子类不会默认继承父類的初始化方法导致子类相关初始化方法缺失。
前面我们重写了init(nibNameOrNil, bundleOrNil)方法但如果要使用,那么不得不每次都提供两个参数这是很麻烦的事。
在OC里如果直接使用new方法生成一个Controller,无需额外参数它就可以自动关联xib文件。在Swift里可以通过增加一个便利初始化方法达到此效果,代码如下:
//3.重写无参数初始化方法自动调用xib文件
写完上述代码后,编译器会报错提示要加入一段代码才行。双击错误提示编译器会自动加入以下代码。当然你也可以亲手打进去:
//4.编译器提示需要加入的代码