Quando un'app viene avviata, il sistema chiama la funzione UIApplicationMain; tra le altre attività, questa funzione crea un oggetto singleton UIApplication. Successivamente, accedi all'oggetto chiamando il metodo della classe sharedApplication.
Per uscire con grazia (biblioteca sviluppatore iOS avverte esplicitamente di non utilizzare l'uscita (0), perché questo viene registrato come un incidente) è possibile utilizzare:
UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)
Per esempio, le mie uscite app quando l'utente scuote il dispositivo. Così, in ViewController.swift:
override func motionEnded(motion: UIEventSubtype,
withEvent event: UIEvent?) {
if motion == .MotionShake{
//Comment: to terminate app, do not use exit(0) bc that is logged as a crash.
UIControl().sendAction(Selector("suspend"), to: UIApplication.sharedApplication(), forEvent: nil)
}}
In termini di invio a livello di codice l'applicazione in secondo piano e tornare alla schermata iniziale, non è necessario. Vedi http://stackoverflow.com/q/5360846/1271826. Per quanto riguarda il mantenere l'app in esecuzione in background, ci sono diversi modi per farlo a seconda di ciò che l'app sta facendo in background. Vedi [Guida alla programmazione app per iOS: Esecuzione in background] (https://developer.apple.com/library/ios/documentation/iphone/conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc/uid/TP40007072- CH4-SW1). – Rob
Ricordati anche che l'unico modo per tornare alla "schermata principale" è uccidere la tua app. Apple vedrà questo un arresto anomalo e rifiuterà la tua app. – rckoenes
questo è troppo male - grazie per le risposte –