onRestart()的iOS等效项
Android上使用的onRestart()的iOS等效项,ios,swift,Ios,Swift,Android上使用的onRestart()的iOS等价物是什么 onRestart()在当前活动重新显示给用户时被调用(用户已导航回该活动)。我相信您需要视图将出现方法: override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) //your code here } 每次显示视图之前都会调用它。因此,当视图第一次显示时也会调用它。 如果要避免在第一次调用viewwillbee
onRestart()
的iOS等价物是什么
onRestart()
在当前活动重新显示给用户时被调用(用户已导航回该活动)。我相信您需要视图将出现方法:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//your code here
}
每次显示视图之前都会调用它。因此,当视图第一次显示时也会调用它。
如果要避免在第一次调用viewwillbeen
时运行代码,则必须添加一个flag属性,并检查它以前是否已设置过。我相信您需要viewwillbeen
方法:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//your code here
}
每次显示视图之前都会调用它。因此,当视图第一次显示时也会调用它。
如果要避免在第一次调用viewwillbeen
时运行代码,则必须添加一个flag属性,并检查它以前是否已设置过。如果要在出现问题的场景进入视图时尝试捕获,则可能需要注意两种情况:
如果您从应用程序内切换到此场景(或取消/弹出到此场景)。在这种情况下,使用视图将显示
:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
update() // your routine for updating what is displayed to the user
}
如果您的应用程序正在运行,并且您按下“主页”按钮(或转到其他应用程序),然后返回到您的应用程序(在其终止之前),则不会调用viewdide
。要检测该场景,您可以观察.uiapplicationIDBecomeActive
:
private var observer: NSObjectProtocol?
override func viewDidLoad() {
super.viewDidLoad()
observer = NotificationCenter.default.addObserver(forName: .UIApplicationDidBecomeActive, object: nil, queue: nil) { [weak self] notification in
self?.update()
}
}
deinit {
if let observer = observer {
NotificationCenter.default.removeObserver(observer)
}
}
如果您试图在所讨论的场景进入视野时进行拍摄,那么您可能会关注以下两种情况:
如果您从应用程序内切换到此场景(或取消/弹出到此场景)。在这种情况下,使用视图将显示
:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
update() // your routine for updating what is displayed to the user
}
如果您的应用程序正在运行,并且您按下“主页”按钮(或转到其他应用程序),然后返回到您的应用程序(在其终止之前),则不会调用viewdide
。要检测该场景,您可以观察.uiapplicationIDBecomeActive
:
private var observer: NSObjectProtocol?
override func viewDidLoad() {
super.viewDidLoad()
observer = NotificationCenter.default.addObserver(forName: .UIApplicationDidBecomeActive, object: nil, queue: nil) { [weak self] notification in
self?.update()
}
}
deinit {
if let observer = observer {
NotificationCenter.default.removeObserver(observer)
}
}