initWithNibName: 和 loadNibNamed

2018-04-17  本文已影响0人  wsmmint

有半年没做过iOS 了,今天写代码跳转到用xib创建页面的时候,一直出错“this class is not key value coding-compliant for the key type.” 

TextViewController *vc = [[[NSBundle mainBundle] loadNibNamed:@"TextViewController" owner:self options:nil] lastObject] ;

网上查到的答案不适用我这个问题。后来才发现是加载方法写错了。

用这个加载方法就没问题了:

TextViewController *vc = [[TextViewController alloc] initWithNibName:@"TextViewController" bundle:[NSBundle mainBundle]];

原来是因为loadNibNamed和initWithNibName需要加载的xib文件是不一样的。initWithNibName需要加载的xib文件的File Owner应该是需要加载的类:TextViewController,

而loadNibNamed需要加载的xib文件的File Owner为NSObject。

上一篇下一篇

猜你喜欢

热点阅读