gpt4 book ai didi

ios - viewDidAppear 在应用程序由于显着的位置变化而启动时被调用,即使它不可见并且在后台

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:35 26 4
gpt4 key购买 nike

我注意到 viewDidAppear 在我的应用程序启动时(在后台)由于位置发生重大变化而被调用,即使屏幕关闭并且应用程序绝对不可见(我在主屏幕和屏幕无论如何都是关闭的)。

也就是说,view并没有真正出现。我可以理解 viewDidLoad 将被调用,因为此 View Controller 将在 didFinishLaunchingWithOptions 中实例化,这就是在这种情况下调用的内容。

但是,如果 viewDidAppear 在屏幕上不可见(显示已关闭,但我仍在主屏幕上),为什么会被调用?

iOS 是否总是在viewDidLoad 之后调用viewDidAppear,不管它是否真正出现?

如果是这样,我如何区分实际出现的 View 和描述的实际不可见的情况?

最佳答案

您可以使用 UIApplicationapplicationState 属性来区分 viewDidAppear 何时被后台启动调用以及何时实际调用 View 出现在用户的屏幕上。例如:

override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)

let application: UIApplication = UIApplication.sharedApplication()

switch application.applicationState {
case .Active:
// Do something when the view actually appears.
case .Inactive:
// The app is briefly Inactive when an it's launched from
// "not running/terminated". viewDidAppear might be called while the
// applicationState property is still set to this.
case .Background:
// Don't do anything because the view didn't really appear on screen
// for the user.
}
}

当我的应用程序由 locationManagerDelegate.locationManager(didVisit) 在后台启动时,这似乎对我有用。我相当有信心对于重大的位置变化也是如此。

关于ios - viewDidAppear 在应用程序由于显着的位置变化而启动时被调用,即使它不可见并且在后台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30584356/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com