我知道这绝对是重复的,但没有任何对我有用。现在这是一个非常简单的任务,但我无法理解。我所要做的就是按下按钮打开一个新视图。当我点击按钮时它会崩溃
ViewController.m
- (IBAction)buttonTapped:(id)sender {
UIViewController *WebViewController = [[UIViewController alloc]initWithNibName:@"WebViewController" bundle:nil];
[self presentViewController:WebViewController animated:YES completion: nil];
}
错误
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x9829be0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key webView.'
答案 0 :(得分:2)
你还没有给我们很多东西,但是有一个有根据的猜测是你已经在.xib文件中指定了一些UIViewController子类作为File的Owner代理的类,并且你已经连接了一个或多个.xib中的对象到文件所有者中的出口。但是,在您的代码中,您将实例化UIViewController
而不是您的子类。 UIViewController与子类没有相同的出口集,因此当.xib加载机制尝试将.xib中的对象连接到视图控制器时,它会抛出异常,因为UIViewController
不符合KVC一个键(与您的一个商店同名)或缺少一个选择器。
一个好的起点是在运行程序时在Xcode中查看控制台。如果您的应用崩溃,您应该会看到错误消息。
您还应该在Xcode的Breakpoints Navigator中add a breakpoint for All Exceptions,以便在抛出异常时中断。
您可以在Xcode的Organizer window中从设备获取崩溃日志,这些通常会为您提供堆栈跟踪,并且非常清楚您的应用崩溃的原因。
答案 1 :(得分:0)
您的buttonTapped
方法实际上是否与您想要点击的按钮相关联?
是self.navigationController
nil
还是没有?
以上是两种可能性。您可以使用类似NSLog()
的内容来回答这两个问题。