Dường như phương pháp viewWillTransitionToSize:withTransitionCoordinator:
được gọi nhiều lần khi ứng dụng đi vào nền hoặc không hoạt động kể từ iOS 9.viewWillTransitionToSize: withTransitionCoordinator: gọi khi ứng dụng đi vào nền hoặc không hoạt động
Ví dụ, nếu ứng dụng là trong bức chân dung trên iPad, nhấn nút trang chủ sẽ khiến ứng dụng nhận cuộc gọi phương thức đầu tiên với kích thước 1024x768 (ngang) và sau đó với 768x1024 (quay lại chân dung). Điều đó dẫn tôi đến kết luận rằng iOS thực hiện việc này để có được ảnh chụp màn hình cho trình chuyển đổi ứng dụng.
Logic ứng dụng của chúng tôi phụ thuộc vào kích thước màn hình và thay đổi đối với tác vụ kích hoạt màn hình kích thước cập nhật mô hình của chúng tôi liên quan đến kích thước mới. Chúng ta cần phải thực hiện điều này khi người dùng xoay thiết bị hoặc chuyển sang chế độ đa nhiệm (chế độ xem tách), nhưng chúng tôi không được thực hiện khi người dùng chuyển sang chế độ nền.
Một ý tưởng là sử dụng UIApplicationWillResignActiveNotification thông báo, nhưng điều đó hóa ra là nhiệm vụ bất khả bởi vì đôi khi viewWillTransitionToSize:withTransitionCoordinator:
được gọi trước khi thông báo được gửi và othertimes nó được gọi sau khi thông báo được gửi:/
Bất kỳ ý tưởng ?
workaround hiện tại của tôi là để trì hoãn logic trong viewWillTransitionToSize 0,1 giây và kiểm tra xem UIApplication.sharedApplication(). ApplicationState vẫn hoạt động. Đó là hack xấu xí, nhưng tôi thấy không có cách nào khác xung quanh nó. –