本文介绍了UIViewController initWithNibName结果为nil的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试制作一个视图控制器,该视图控制器将始终加载相同的笔尖.我的初始化代码如下:
I'm trying to make a view controller that will always load the same nib. My initialization code looks like this:
-(id)init
{
NSString* nibName;
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
nibName = @"XIB_iPad";
else
nibName = @"XIB_iPhone";
self = [super initWithNibName:nibName bundle:nil];
if (self)
{
...
}
return self;
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
return [self init];
}
问题在于此代码导致视图控制器具有nil视图.我在这里做错什么了吗?有更好的方法吗?
The problem is that this code results in the view controller having a nil view. Is there something I'm doing wrong here? Is there a better way to do this?
谢谢.
推荐答案
检查以下内容:
- 您的项目中同时存在XIB_iPad.xib和XIB_iPhone.xib.
- 每个xib文件的文件所有者"具有正确的类(YourViewController).
- 每个文件所有者视图出口(在xib文件中)已正确链接查看.
- Both XIB_iPad.xib and XIB_iPhone.xib exist in your project.
- Each xib file's "File owner" is of the correct class (YourViewController).
- Each File Owner view outlet (in the xib files) is linked correctlyto a view.
如果在检查完这三个步骤后仍然遇到问题,请提供用于实例化和设置自定义视图控制器的代码.
If you keep having problems after you check these three steps, please provide with the code you use to instantiate and setup your custom view controller.
这篇关于UIViewController initWithNibName结果为nil的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!