swift出来很久了,一直也没有把它用到项目中,现在开始用swift语言来写项目,在写项目时遇到了加载xib的问题。
在使用objective c的时候,调用ViewController的默认构造函数,会自动关联到一个与ViewController名字相同的xib文件上,方便了开发者,减少了代码量。但是在swift中,新建ViewController实例,不在默认关联xib,一定要开发者指定xib的名字。这点对于我来说很是不习惯。
先看下OC中的写法:
ViewController1 *vc1 = [[ViewController1 alloc] init]; //这样会把ViewController1默认关联到ViewController1.xib上 //等同调用了方法 ViewController1 *vc1 = [[ViewController1 alloc] initWithNibName:@"ViewController1" bundle:nil];
Swift中的写法
var vc = ViewController1() //不会关联ViewController1.xib文件 //一定要指定xib文件,正确的写法如下: var vc = ViewController1(nibName: "ViewController1", bundle: nil)怎样让ViewController1()去找同名字的xib文件呢,其实原来很简单,重写init方法就行了。为了防止每个VC里都要重要重写init方法,只要把重写init的方法放到一个父类里,其它类继承下就可以了。
这就是我在开始swfit项目时遇到的问题,希望也能帮助到你。