如何使用导航控制器快速重用视图控制器对象

时间:2019-09-04 12:19:54

标签: ios swift view controller navigation

我的应用程序有一个用户个人资料页面,我可以从该个人资料转到记录,也可以从记录转到个人资料等(例如instagram,facebook)。这样的过渡可能是无止境的。我将导航控制器与performSegue一起使用。我如何重用视图控制器对象,这样我每次转换时都不必创建新的对象?否则,经过25次迭代后,我的RAM用完了。

1 个答案:

答案 0 :(得分:0)

请找到配置文件视图控制器,然后在该视图控制器上弹出。请参见下面的代码。

   for viewController in self.navigationController?.viewControllers ?? [] {
        if viewController is ProfileViewController {
            self.navigationController?.popToViewController(viewController, animated: true)
        }
    }

对于动画,您可以使用以下代码,以便动画看起来像pushviewController

    let transition = CATransition()
    transition.duration = 0.5
    transition.type = CATransitionType.push
    transition.subtype = CATransitionSubtype.fromRight
    transition.timingFunction = CAMediaTimingFunction(name:CAMediaTimingFunctionName.linear)
    self.navigationController?.view.layer.add(transition, forKey: kCATransition)
    self.navigationController?.popToViewController(viewController, animated: false)