Sembra che il metodo viewWillTransitionToSize:withTransitionCoordinator:
viene chiamato più volte quando l'applicazione passa in secondo piano o inattiva dal iOS 9.viewWillTransitionToSize: withTransitionCoordinator: chiamato quando un'applicazione passa in secondo piano o inattivo
Per esempio, se l'applicazione è nel ritratto su iPad, premendo il pulsante home, l'app riceverà prima la chiamata al metodo con dimensioni di 1024x768 (orizzontale) e quindi con 768x1024 (di nuovo in verticale). Questo mi porta a concludere che iOS fa questo per ottenere screenshot per lo switcher delle app.
La nostra logica di applicazione dipende dalle dimensioni dello schermo e dalle modifiche alle attività di attivazione delle dimensioni dello schermo che aggiornano il nostro modello in relazione alle nuove dimensioni. Dobbiamo farlo quando l'utente ruota il dispositivo o passa alla modalità multitasking (split view), ma non dobbiamo farlo quando l'utente va in background.
Un'idea era quella di utilizzare UIApplicationWillResignActiveNotification notifica, ma che si è rivelata una missione impossibile perché a volte viewWillTransitionToSize:withTransitionCoordinator:
viene chiamato prima che la notifica viene inviata e othertimes che viene chiamato dopo che la notifica viene inviata:/
Tutte le idee ?
mia soluzione attuale è quella di rinviare la logica in viewWillTransitionToSize di 0,1 secondi e controllare se UIApplication.sharedApplication(). ApplicationState è ancora attivo. È il brutto scherzo, ma non vedo nessun altro modo di aggirarlo. –