如何呈现新的ViewController并从内存中删除当前的
var presentingViewController :UIViewController! = self.presentingViewController;
self.dismissViewControllerAnimated(false) {
// go back to MainMenuView as the eyes of the user
presentingViewController.dismissViewControllerAnimated(false, completion: nil)
}
这没关系,但我想在解雇之前出示可以显示加载指标
let loadingNotification = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
loadingNotification.labelText = "Retrieving Data"
答案 0 :(得分:1)
如果在包含“检索数据”的视图出现之前需要很长时间,则初始化代码中可能会有太多耗时的逻辑。您应该考虑将其移动到viewDidAppear或后台线程。这样,呈现的视图控制器立即显示(初始状态为“检索数据”。
另一种方法是创建一个中间视图控制器,它只显示“检索数据”消息,显示它而不是新的视图控制器,并在完成数据检索过程后使其显示新的视图控制器。 p>
解决方案将在很大程度上取决于您用于实现数据检索的机制。无论是同步还是异步都将对如何处理它产生重大影响。
作为一般规则,您应该避免在初始化函数中放置时间敏感或CPU密集型代码,例如viewDidLoad,viewWillAppear ......