如何呈现新的ViewController并从内存中解除当前的电流

时间:2016-01-16 14:18:39

标签: ios swift uiviewcontroller

如何呈现新的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"

1 个答案:

答案 0 :(得分:1)

如果在包含“检索数据”的视图出现之前需要很长时间,则初始化代码中可能会有太多耗时的逻辑。您应该考虑将其移动到viewDidAppear或后台线程。这样,呈现的视图控制器立即显示(初始状态为“检索数据”。

另一种方法是创建一个中间视图控制器,它只显示“检索数据”消息,显示它而不是新的视图控制器,并在完成数据检索过程后使其显示新的视图控制器。 p>

解决方案将在很大程度上取决于您用于实现数据检索的机制。无论是同步还是异步都将对如何处理它产生重大影响。

作为一般规则,您应该避免在初始化函数中放置时间敏感或CPU密集型代码,例如viewDidLoad,viewWillAppear ......