UIStoryboard segue deallocs旧的UIVIewControllers

时间:2014-07-21 03:09:23

标签: ios objective-c swift uistoryboard uistoryboardsegue

我想用两个UIViewControllers连接一个完全取代旧UIViewControllers的segue。我将不再需要以前的那些,所以我希望它们被释放以节省内存,但如果我使用模态segue它们仍然存在。如何使用segues确保新的UIViewController替换以前的所有?{/ p>

我想要的原因是注册屏幕。用户完成注册过程,一旦完成进入应用程序的主要部分。不再需要所有注册UIViewControllers所以我希望它们被取消分配。但是如果我为此使用segue(就像模态segue)那么视图仍然存在(因为如果我使用dismissViewController它们会再次出现)。

注意:我知道如何以编程方式执行此操作,我正在寻找使用segues执行此操作的方法。

2 个答案:

答案 0 :(得分:1)

由于您的注册过程可能不经常使用(一次是在用户首次安装时,也可能是因为某些原因需要再次注册为新用户),因此将主屏幕视为根视图可能是最有意义的在需要时显示您的注册屏幕。完成注册过程后,您只需退回到主屏幕,释放注册控制器

答案 1 :(得分:0)

最简单的方法是:

// in your UIStoryboardSegue subclass

-(void)perform {
    UIViewController *src = self.sourceViewController;
    UIViewController *dest = self.destinationViewController;
    [src presentViewController:dest animated:YES completion:^{
        dest.view.window.rootViewController = dest;
    }];
}