我正在尝试如何将 nib 文件加载到UIViewController
.
我创建了一个名为Email的单独 nib 文件。首先我注意到当视图控制器被加载时,该initWithNibName
方法没有被调用。viewDidLoad
所以我像这样手动从方法中调用它,
[self initWithNibName:@"Email" bundle:[NSBundle mainBundle]];
那没起效。我也收到了一个警告,说Expression result used。
我在互联网上搜索并遇到了这篇文章并loadView
按照描述的方法实现了这样的方法,
- (void)loadView
{
[super loadView];
UINib *nib = [UINib nibWithNibName:@"Email" bundle:nil];
[nib instantiateWithOwner:self options:nil];
}
该方法被调用但视图控制器仍然是空的!
谁能告诉我我在这里忽略了什么以及如何做到这一点?
谢谢你。
更新:
首先,感谢所有回复。然而voromax和svena的回答表明我应该删除 segues 并自动加载我不太喜欢的笔尖。Anil 的答案很有效,现在我还有最后一个障碍要跳。
我有多个笔尖文件。根据用户的选择,它应该加载一个特定的笔尖。所以我尝试的是,像这样把所有的笔尖放在数组中,
- (void)loadView
{
[super loadView];
NSArray *nibs = [[NSArray alloc] initWithObjects:
[[NSBundle mainBundle] loadNibNamed:@"Facsimile" owner:self options:nil],
[[NSBundle mainBundle] loadNibNamed:@"Email" owner:self options:nil],
[[NSBundle mainBundle] loadNibNamed:@"Memorandum" owner:self options:nil],
[[NSBundle mainBundle] loadNibNamed:@"ProjectMemo" owner:self options:nil], nil];
self.view = [nibs objectAtIndex:0];
}
并像这样使用它的索引访问它self.view = [nibs objectAtIndex:1];
。但它会引发错误 *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[__NSArrayM _setViewDelegate:]:无法识别的选择器已发送到实例 0xd56fd20'*
为什么会出现这个错误?如果不可能,我愿意接受建议。
再次感谢。很抱歉有点拖了后腿。