Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone InitWithNibName返回viewController,但视图为nil_Iphone_Ipad_Xib_Loadview - Fatal编程技术网

Iphone InitWithNibName返回viewController,但视图为nil

Iphone InitWithNibName返回viewController,但视图为nil,iphone,ipad,xib,loadview,Iphone,Ipad,Xib,Loadview,其他xib的自动加载很好,但不是这个 当我按下这个viewcontroller时,initWithNibName、loadView、viewDidLoad和ViewWillDisplay都被调用为fine,但是视图(以及@interface中的所有self.xxx对象)在所有这些方法中都是nil,导航栏下留有一个空窗口 SettingsMain *newVC=[[SettingsMain alloc] initWithNibName:@"SettingsMain" bundle:nil]; [s

其他xib的自动加载很好,但不是这个

当我按下这个viewcontroller时,initWithNibName、loadView、viewDidLoad和ViewWillDisplay都被调用为fine,但是视图(以及@interface中的所有self.xxx对象)在所有这些方法中都是nil,导航栏下留有一个空窗口

SettingsMain *newVC=[[SettingsMain alloc] initWithNibName:@"SettingsMain" bundle:nil];
[self.navigationController pushViewController:newVC animated:YES];
我想知道是否可以强制将self.view设置为.xib、loadView或initWithNibName中的内容,以便初始化所有插座等

viewcontroller具有标准代码

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization

    }
    return self;
}

问题是,当启动viewDidLoad时,self.view为nil。

您是否在nib文件中为视图设置了出口?由于loadView方法仅在view属性为“nil”时调用,因此可能是您忘记在SettingsMain xib文件中将outlet设置为view。否,它已连接。什么可以将其设置为nil,或者“读取连接并设置.view”需要什么?我猜,-init或-initWithFrame:。但xib的要点是不必编写这些文件。文件的所有者设置正确吗?还有ViewControllerClass?当调用initWithNibName方法时,调试窗口告诉您什么?有时候你会得到一些有用的提示。