打开新视图iOS应用程序

时间:2013-08-05 00:11:36

标签: ios objective-c

我知道这绝对是重复的,但没有任何对我有用。现在这是一个非常简单的任务,但我无法理解。我所要做的就是按下按钮打开一个新视图。当我点击按钮时它会崩溃

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.'

2 个答案:

答案 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()的内容来回答这两个问题。