我是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
时,编译器会显示它已被弃用。
答案 0 :(得分:1)
我发现了问题,这是因为我在AboutViewController中使用了一个按钮,我没有声明该按钮的属性。
但是任何人都可以告诉我如何使用ModelViewController在ios6中转到一个新视图,因为当我使用方法presentModelViewController时,它会显示一个不推荐使用的警告
答案 1 :(得分:0)
我认为问题是你的AboutViewController,而不是当前的视图控制器。
我猜你的AboutViewController nib类是UIViewController类而不是AboutViewController类,试着把它改成正确的类。单击您的nib文件,然后单击文件的所有者,然后在右侧部分单击第三个选项卡。您应该在顶部看到类,将其更改为AboutViewCtroller。
答案 2 :(得分:0)
通常由于xib中连接的插座出现问题而发生这些类型的错误。 主要方案:
已从界面文件中删除已连接插座的属性
presentModelViewController在iOS 6中已弃用。您可以使用presentViewController:animated:completion:
来呈现modalViews。
<强> 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