【发布时间】:2015-12-04 06:45:50
【问题描述】:
假设一个新的 iOS 项目,只有一个导航控制器(正确连接为入口点)和一个包含以下三行代码的重写 viewDidAppear():
self.presentViewController(UIViewController(), animated: true, completion: nil)
self.dismissViewControllerAnimated(true, completion: {})
self.presentViewController(UIViewController(), animated: true, completion: nil)
执行时,该代码将引发警告“尝试在演示过程中演示 UIViewController!”尝试呈现第二个控制器时。
问题:为了在调用另一个控制器之前正确关闭控制器,我到底缺少什么?
【问题讨论】:
-
如果你想关闭一个控制器然后执行一些后续操作,请将所有后续代码放在完成处理程序中以进行关闭。听起来你试图在关闭完成之前展示一个新的控制器?
-
对不起,但不知何故,我找不到任何“跟随代码”放置在完成处理程序中的信息,以允许旧控制器被解散。还是您的意思是我需要在该处理程序中放置某种购买等待代码,以确保在调用下一个控制器之前控制器已被解除?
-
FIY:在 Rory McKinnel 发表评论后,我改进了这个问题
-
我试过的都没有用。调用另一个糟糕的控制器并不是那么困难!我想我一定错过了一些基本的东西。我希望有人可以提供帮助,仅用三行代码就可以得到如此持久的问题真是太荒谬了
-
从您的新代码中,您需要将每一行放在前一行的完成处理程序中,尽管顺序对我来说意义不大。
标签: ios swift uiviewcontroller ios8