打开新视图iOS应用程序
我知道这绝对是重复的,但没有为我工作。现在这是一个非常简单的任务,但我无法弄清楚。我所要做的就是在按钮按下时打开一个新的视图。当我点击按钮崩溃打开新视图iOS应用程序
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.'
你还没有给我们很多东西,但一个有教养的猜测是,你已经指定了一些UIViewController子类作为你的.xib文件中文件所有者代理的类,并且你已经连接了一个或文件所有者中出口的.xib中的更多对象。然而,在你的代码中,你正在实例化UIViewController
而不是你的子类。 UIViewController没有与你的子类相同的一组插座,所以当.xib加载机制试图将对象从.xib连接到你的视图控制器时,它会抛出一个异常,因为UIViewController
对于一个密钥不是KVC兼容的名称作为您的店铺之一)或缺少选择器。
一个很好的开始是在运行程序时在Xcode的控制台中查找。如果您的应用崩溃,您应该在那里看到一条错误消息。
您还应该在Xcode的Breakpoints Navigator中使用add a breakpoint for All Exceptions,以便在抛出异常时中断。
您可以从Xcode的Organizer window中的设备中获取崩溃日志,这些通常会为您提供堆栈跟踪,以及您的应用崩溃的原因。
是您buttonTapped
方法实际上迷上了你想点击该按钮?
是self.navigationController
nil
,还是不是?
以上是两种可能性。你可以使用像NSLog()
这样的东西来回答这两个问题。
我的buttonTapped方法被连接起来,用NSLog()确认。登录self.navigationController不会产生任何输出。 – user1658819
您的控制器(ViewController)需要嵌入到导航控制器中。 – rdelmar
@rdelmar:人们会怎么想,找不到任何好的资源。 – user1658819
-1(“这个问题没有显示任何研究工作”)为“找不到任何好资源”;网络充满了丰富的资源,您的本地或网上书店也是如此。另外对于“崩溃”而不提供崩溃日志或错误消息。 – Caleb