因未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[<aboutviewcontroller 0x91cc1d0 =“”> setValue:forUndefinedKey:]:</aboutviewcontroller>

时间:2012-11-09 08:20:02

标签: objective-c ios xcode ios5 ios4

我是iPhone App开发的新手。

我运行项目时遇到此错误

Terminating app due to uncaught exception 'NSUnknownKeyException',
reason: '[<AboutViewController 0x91cc1d0> setValue:forUndefinedKey:]:

当我尝试导航到另一个名为AboutViewController的视图控制器时会发生这种情况。

我像这样定义了rightBarButton

UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"About" style:UIBarButtonItemStylePlain target:self :@selector(showAbout)];
self.navigationItem.rightBarButtonItem = anotherButton;

方法showAbout

- (void)showAbout{

    AboutViewController *abvController = [[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:nil];

    [self.navigationController pushViewController:abvController animated:YES];    
    [abvController release];
}

当我尝试使用presentModelViewController而不是navigationController时,编译器会显示它已被弃用。

3 个答案:

答案 0 :(得分:1)

我发现了问题,这是因为我在AboutViewController中使用了一个按钮,我没有声明该按钮的属性。

但是任何人都可以告诉我如何使用ModelViewController在ios6中转到一个新视图,因为当我使用方法presentModelViewController时,它会显示一个不推荐使用的警告

答案 1 :(得分:0)

我认为问题是你的AboutViewController,而不是当前的视图控制器。

我猜你的AboutViewController nib类是UIViewController类而不是AboutViewController类,试着把它改成正确的类。单击您的nib文件,然后单击文件的所有者,然后在右侧部分单击第三个选项卡。您应该在顶部看到类,将其更改为AboutViewCtroller。

答案 2 :(得分:0)

通常由于xib中连接的插座出现问题而发生这些类型的错误。 主要方案:

  1. 查看插座未在xib中连接
  2. 已从界面文件中删除已连接插座的属性

    presentModelViewController在iOS 6中已弃用。您可以使用presentViewController:animated:completion:来呈现modalViews。

  3.   

    <强> presentViewController:动画:完成:

         

    呈现视图控制器。

         

    - (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion

         

    参数

         

    <强> viewControllerToPresent

    The view controller being presented.
    
         

    <强>标志

    Pass YES to animate the presentation; otherwise, pass NO.
    
         

    <强>完成

    A completion handler or NULL.
    
         

    <强>讨论

         

    在iPhone和iPod touch上,显示的视图始终为全屏。上   iPad,演示取决于价值   modalPresentationStyle属性。

         

    此方法将presentViewController属性设置为指定的属性   视图控制器,调整视图控制器的视图大小,然后添加   查看视图层次结构。该视图根据屏幕动画显示   在modalTransitionStyle属性中指定的过渡样式   呈现的视图控制器。

         

    在viewDidAppear:方法之后调用完成处理程序   调用了呈现的视图控制器。

         

    <强>状况

    Available in iOS 5.0 and later.
    
         

    在UIViewController.h中声明

    有关详细信息,请查看UIViewController Class

相关问题