I have updated to latest xcode - 9 and iOS 11, now I am facing issue in UIApplicationState. Can anyone tell me why apple have done this changes in ApplicationState.
For instance: During viewController viewWillAppear, I am checking UIApplicationState:
UIApplicationState applicationState = [UIApplication sharedApplication].applicationState;
if (applicationState == UIApplicationStateActive)
{
}
But I am getting applicationState = UIApplicationStateInactive.
Or do I need to handle separately for iOS 11 version by extra codes:
if (applicationState == UIApplicationStateActive || (@available(iOS 11, *) && applicationState == UIApplicationStateInactive)){
}
Any other answers to maintain application state consistently throughout all versions?
Thanks in advance,
** UPDATED ANSWER **
I used the following code to test states on both an iOS 10 and iOS 11 device.
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
print("\(#function) active: \(UIApplication.shared.applicationState == .active)")
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("\(#function) active: \(UIApplication.shared.applicationState == .active)")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("\(#function) active: \(UIApplication.shared.applicationState == .active)")
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
print("\(#function) with delay active: \(UIApplication.shared.applicationState == .active)")
}
}
}
When running on iOS 10:
viewDidLoad() active: false
viewWillAppear active: false
viewDidAppear active: true // This differs from 11
viewDidAppear with delay active: true
When running on iOS 11:
viewDidLoad() active: false
viewWillAppear active: false
viewDidAppear active: false
viewDidAppear with delay active: true
I can't tell you if this is intentional or not, but something has definitely changed. Perhaps file a radar on it?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With