-2

我知道这绝对是重复的,但对我没有任何帮助。现在这是一个非常简单的任务,是的,但我就是想不通。我要做的就是在按下按钮时打开一个新视图。当我点击按钮时它崩溃

视图控制器.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.'
4

2 回答 2

2

你没有给我们太多的继续,但有根据的猜测是你已经在你的 .xib 文件中指定了一些 UIViewController 子类作为文件所有者代理的类,并且你已经连接了一个或多个对象.xib 到文件所有者的网点。但是,在您的代码中,您是在实例化UIViewController而不是您的子类。UIViewController 没有与您的子类相同的一组插座,因此当 .xib 加载机制尝试将 .xib 中的对象连接到您的视图控制器时,它会引发异常,因为UIViewController键不符合 KVC(同名作为您的网点之一)或缺少选择器。

一个好的起点是在运行程序时查看 Xcode 中的控制台。如果您的应用程序崩溃,您应该会在此处看到一条错误消息。

您还应该在 Xcode 的 Breakpoints Navigator 中为 All Exceptions 添加一个断点,以便在抛出异常时中断。

您可以在 Xcode 的Organizer 窗口中从设备中获取崩溃日志,这些日志通常会为您提供堆栈跟踪,并很好地了解您的应用程序崩溃的原因。

于 2013-08-05T01:04:59.570 回答
0

您的buttonTapped方法实际上是否与您要单击的按钮相关联?

self.navigationController nil,还是不是?

以上是两种可能。您可以使用类似NSLog()的方法来回答这两个问题。

于 2013-08-05T00:13:07.030 回答