我刚刚更新了iOS 6,并运行了我在iOS 4.3中创建的旧代码。他们在我的申请中给了我一些警告。
我使用presentModelViewController:
然后我解雇了它,但它给了我警告
在iOS 6中首先弃用了dismissModalViewControllerAnimated。
为什么他们会对该代码发出警告?这是代码:
[picker dismissModalViewControllerAnimated:YES];
此行变黄并显示错误。请给我指导,删除警告。
答案 0 :(得分:60)
现在在ios 6中你可以使用
[[Picker presentingViewController] dismissViewControllerAnimated:YES completion:nil];
而不是
[[Picker parentViewControl] dismissModalViewControllerAnimated:YES];
和
[self presentViewController:picker animated:YES completion:nil];
而不是
[self presentModalViewController:picker animated:YES];
答案 1 :(得分:4)
如果您的部署目标设置为iOS 6,则只应获取弃用警告。因此,我会检查您的部署目标,该目标可能设置为Xcode默认值。将此值更改为4.3后,弃用警告应消失。
答案 2 :(得分:2)
您可以使用iOS Developer文档中的dismissViewControllerAnimated:completion
dismissViewControllerAnimated:完成:
解散接收者提供的视图控制器。 - (void)dismissViewControllerAnimated:(BOOL)标志完成:(void(^)(void))完成参数
标志
Pass YES to animate the transition. completion A block called after the view controller has been dismissed.
讨论
呈现视图控制器负责解除视图 它呈现的控制器。如果在显示的视图上调用此方法 控制器本身,它会自动将消息转发给 呈现视图控制器。
如果你连续出现几个视图控制器,那么建立一个 堆栈的呈现视图控制器,在视图上调用此方法 堆栈中较低的控制器会解除其直接的子视图 控制器和堆栈上该子节点上方的所有视图控制器。 发生这种情况时,只有最顶层的视图在动画中被解除 时尚;任何中间视图控制器都可以从中删除 堆。最顶层的视图使用其模态转换被忽略 样式,可能与其他视图控制器使用的样式不同 在堆栈中较低。
如果您想保留对接收者呈现视图的引用 controller,获取presentViewController属性中的值 在调用此方法之前。
在viewDidDisappear:方法之后调用完成处理程序 调用了呈现的视图控制器。可用性
Available in iOS 5.0 and later.
答案 3 :(得分:2)
我改变了我的代码
[self dismissModalViewControllerAnimated:YES];
到
[self dismissViewControllerAnimated:YES];
并收到错误: 'KLPARewardController'没有可见的@interface声明选择器'dismissViewControllerAnimated:'