在ios 6中首先弃用dismissmodalviewcontrolleranimated

Piy*_*ush 23 iphone

我刚刚更新了iOS 6,并运行了我在iOS 4.3中创建的旧代码.他们在我的申请中给了我一些警告.

我使用presentModelViewController:然后我解雇它,但它给了我警告

不推荐使用dismissModalViewControllerAnimated在iOS 6中弃用.

为什么他们会对该代码发出警告?这是代码:

[picker dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

此行变为黄色并显示错误.请给我指导删除警告.

Dip*_*ang 60

现在在ios 6你可以使用

[[Picker presentingViewController] dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

代替

[[Picker parentViewControl] dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

[self presentViewController:picker animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

代替

[self presentModalViewController:picker animated:YES];
Run Code Online (Sandbox Code Playgroud)


Chr*_*vid 2

您可以使用iOS 开发人员文档dismissViewControllerAnimated:completion中的 ,

\n\n
\n

解雇ViewControllerAnimated:完成:

\n\n

关闭接收者呈现的视图控制器。\n - (void)dismissViewControllerAnimated:(BOOL)flag 完成:(void (^)(void))completion 参数

\n\n

旗帜

\n\n
Pass YES to animate the transition. completion\n\nA block called after the view controller has been dismissed.\n
Run Code Online (Sandbox Code Playgroud)\n\n

讨论

\n\n

呈现的视图控制器负责关闭它呈现的视图控制器。如果您在呈现的视图控制器本身上调用此方法,它会自动将消息转发到呈现的视图控制器。

\n\n

如果您连续呈现多个视图控制器,从而构建呈现的视图控制器堆栈,则在堆栈中较低的视图控制器上调用此方法将消除其直接子视图控制器以及该子视图控制器之上的所有视图控制器堆栈。\n 当发生这种情况时,只有最顶层的视图会以动画方式消失;\n 任何中间视图控制器都会从堆栈中删除。\n 最顶层的视图使用其模态转换样式来关闭,该样式可能与堆栈中较低的其他视图控制器使用的样式不同。

\n\n

如果要保留对接收者\xe2\x80\x99s 呈现视图控制器的引用,请在调用此方法之前获取presentedViewController 属性中的值。

\n\n

在呈现的视图控制器上调用 viewDidDisappear: 方法之后,将调用完成处理程序。可用性

\n\n
Available in iOS 5.0 and later.\n
Run Code Online (Sandbox Code Playgroud)\n
\n