Ios XIB文件使用默认的ViewController类,而不是在文件';业主
在任何人将此标记为重复之前,我已经彻底搜索了堆栈溢出,但所有建议都没有帮助 问题:我已将自定义视图添加到我的Ios XIB文件使用默认的ViewController类,而不是在文件';业主,ios,objective-c,xcode,Ios,Objective C,Xcode,在任何人将此标记为重复之前,我已经彻底搜索了堆栈溢出,但所有建议都没有帮助 问题:我已将自定义视图添加到我的主详细信息应用程序,当单击按钮时,它会被推到主视图的顶部。我已将xib文件的所有者设置为自定义类。如果我只建立了一个IBOutlet连接,应用程序就会崩溃并说“类不符合密钥的键值编码”,我已经在自定义类的viewDidLoad函数中放置了一个NSLog,我发现它从未被实例化。我觉得我可能错过了一个非常简单的步骤,但从我从其他所有关于这个问题的帖子中可以看出,他们的解决方案不适合我 设置VI
主详细信息应用程序
,当单击按钮
时,它会被推到主视图的顶部。我已将xib
文件的所有者设置为自定义类。如果我只建立了一个IBOutlet
连接,应用程序就会崩溃并说“类不符合密钥的键值编码”,我已经在自定义类的viewDidLoad
函数中放置了一个NSLog
,我发现它从未被实例化。我觉得我可能错过了一个非常简单的步骤,但从我从其他所有关于这个问题的帖子中可以看出,他们的解决方案不适合我
设置VIEWCONTROLLER.m:
#import "SettingsViewController.h"
@interface SettingsViewController ()
@end
@implementation SettingsViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
NSLog(@"viewDidLoad");
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
启动视图的代码行:
UIViewController *settingsViewController = [[UIViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];
[self.navigationController pushViewController:settingsViewController animated:YES];
我已经通过堆栈溢出尝试过的事情:
viewcontroller
中没有任何已在代码中删除或重命名的额外IBOutlets
kill xcode
,从设备上删除应用程序,重新打开xcode
并重建项目UIViewController *settingsViewController = [[UIViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];
应该是:
SettingsViewController *settingsViewController = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];
文件所有者类的名称基本上只是IB告诉它哪些连接可用的信息。在实例化过程中实际上没有使用它。通过调用[[UIViewController alloc]…
您正在创建一个普通的UIViewController
实例(显然没有定义密钥)。此行:
UIViewController *settingsViewController = [[UIViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];
应该是:
SettingsViewController *settingsViewController = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];
file owner类的名称基本上只是IB告诉它哪些连接可用的信息。在实例化过程中它实际上没有被使用。通过调用
[[UIViewController alloc]…
您正在创建一个普通的UIViewController
实例(显然没有定义您的密钥).效果很好,我知道会是那样简单。谢谢!!效果很好,我知道会是那样简单。谢谢!!