Iphone initWithNibName VS NSBundle';这是我的名字
我注意到加载nib/xib文件有两种不同的方法:Iphone initWithNibName VS NSBundle';这是我的名字,iphone,objective-c,cocoa-touch,uitableview,nib,Iphone,Objective C,Cocoa Touch,Uitableview,Nib,我注意到加载nib/xib文件有两种不同的方法: 通过UIView的initWithNibName:bundle:方法 NSBundle的loadNibNamed:owner:options:方法 有人能解释一下这两者之间的区别吗?在什么情况下使用一个比另一个更合适 例如,如果我从tableView:viewForHeaderInSection:方法中的nib文件加载自定义表节头视图,我会使用哪一个 或者,如果从nib文件加载自定义表视图单元格,我会使用哪一个?NSBundle的方法是用于非归档
initWithNibName:bundle:
方法loadNibNamed:owner:options:
方法或者,如果从nib文件加载自定义表视图单元格,我会使用哪一个?
NSBundle
的方法是用于非归档nib的通用API。它们执行实际工作(与NSNib一起执行)
另一方面,UIViewController
的initWithNibName:bundle:
是一种初始化视图控制器的方法,该视图控制器(可能)从nib加载其视图。该方法本身并不加载nib,只记录名称。当请求视图时,控制器将延迟加载nib
我不知道在
UIView
中有任何nib加载,如果标题的视图控制器包含nib文件中任何字段的IBOutlets,则最好加载nib文件,而不是调用initWithNib。
在头文件的视图控制器中,按如下方式修改初始化语句。默认语句被注释掉。通过这样做,您将能够使用IBoutlets访问nib文件中的字段
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
//self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
// Custom initialization.
if ([[NSBundle mainBundle] loadNibNamed:@"NibFile" owner:self options:nil]) {
}
return self;
}
如果可以的话,我会投你100票。你的回答真的帮了我-解决了两个问题。我还需要包括一个带有选项的NSDictionary。谢谢