在当前视图控制器中传递的变量是持久的

问题描述 投票:0回答:1

我将以这种方式显示UIViewController中的变量值:

let story = UIStoryboard(name: "Main", bundle: nil)
let vc = story.instantiateViewController(withIdentifier: "downloadcontroller") as! DownloadViewController
vc.isFromChangeLangauge = true    //here
self.present(vc, animated: true)

将显示新的DownloadViewController,当我在控制台中从isFromChangeLanguage打印viewDidLoad变量时,将其更改为true,一切都很好。但是,当我尝试在其中使用诸如DownloadViewControllerURLSessionDelegate的委托函数的任何URLSessionDownloadDelegate扩展名中使用它时,变量将返回其默认值false

我想在这里做的是我只想知道此下载视图控制器是否由语言设置视图控制器提供?

swift variables delegates
1个回答
0
投票

[您在这里所做的是在另一个Class / View内部实例化UIViewController并在另一个Class / View内部更改其值。您基本上是在更改实例,但不是类本身。因此,如果您想在另一个类中再次使用该更新的变量,则应在另一个类中传递您在此处创建和修改的实例,而不要在其他地方重新创建新实例,而该实例将恢复默认值。

© www.soinside.com 2019 - 2024. All rights reserved.