ios - 如何使用导航 Controller 快速重用 View Controller 对象

标签 ios swift view controller navigation

我的应用程序有一个用户个人资料页面,我可以从该个人资料移动到记录以及从记录移动到个人资料等(如 instagram、facebook)。这种转变可以是无止境的。我将导航 Controller 与 performSegue 结合使用。我怎样才能重用 View Controller 对象,这样我就不必在每次转换时都创建新的对象?否则,在 25 次迭代后,我会用完 RAM。

最佳答案

请找到配置文件 View Controller 并在该 View Controller 上弹出。请看下面的代码。

   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)

关于ios - 如何使用导航 Controller 快速重用 View Controller 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57788288/

相关文章:

ios - UICollectionView 从左到右读取多行

android - 如何在 react-native 中更改应用程序的显示名称

ios - 在处理 Swift 对象和数组时,retainership 真的很重要吗?

view - 如何: bring view to front on tap; set max/min pinch gesture scale; set screen limit to pan gesture

json - 如何传递JSON数据以在laravel中查看

ios - 无法更改后退按钮标题,但我可以隐藏它

macos - 使用 Dark Transparency 使标题栏和 View Controller 无缝衔接

ios - 强制 iOS CloudKit 同步更新,将所有记录下载到本地设备

django - 是否可以在路由到 django 中的 View 之前执行操作

ios - 打开项目 EXC_CRASH (SIGABRT) 和 EXC_CORPSE_NOTIFY 时 XCode 8 崩溃