【发布时间】:2019-04-10 23:56:08
【问题描述】:
我有一个 HomeViewController 正在使用 segue 打开一个 WelcomeViewController 并且来自 Sheet 类型。
在WelcomeViewController 中,用户正在输入信息,然后关闭(关闭)它。在WelcomeViewController 关闭后,我想通过更改String 的TextField 值来更新HomeViewController。
问题是,HomeViewController 中的 ViewDidAppear 在关闭 WelcomeViewController 后不会被调用。我之前为 iOS 开发时没有这个问题。
我该如何解决这个问题?我尝试手动调用它,但遇到了问题,因为我的 IBOutlets 设置为 nil,我无法更改 TextField 中的文本。
这是调用segue的代码:
self.performSegue(withIdentifier: "welcome", sender: self)
这是我在HomeViewController中的viewDidAppear:
override func viewDidAppear() {
super.viewDidAppear()
if (CoreDataAccess().countUsers() == 0) {
self.performSegue(withIdentifier: "welcome", sender: self)
} else {
//continue execution..
}
}
在WelcomeViewController 中,我使用此代码关闭ViewController
dismiss(self)
【问题讨论】:
-
发布创建您的视图控制器/调用 segue 的代码,并发布您的 viewDidAppear 方法。 (你永远不应该调用那个方法。这就是 hte system 所做的。)
-
@DuncanC 我发布了代码
-
使用委托。在您的情况下不会调用 viewDidAppear
-
你的 outlet 不应该是 nil。您如何尝试将数据从welcomeViewController 传递回第一个屏幕?您需要显示更多代码。你的问题不清楚
标签: swift macos appkit nsviewcontroller