Hello à tous,
Pour mon App, je crée des Quick Actions (3D Touch dans le Home Screen) pour lancer une fonction de mon ViewController…
Tout fonctionne correctement, le raccourcis est là, l’icône aussi, ça appelle bien la fonction
func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
sauf que… dans ma fonction il y a une mise a jour du Storyboard qui semble poser problème vu que AppDelegate.swift exécute ma fonction avant le viewDidLoad de mon ViewController, donc ça plante, à moins que j’ajoute un « ? » sur mon bouton comme ceci, (mais ça ne change pas mon bouton du coup) :
playButton?.setImage(UIImage(named: "stopbutton"), for: .normal)
sinon j’ai le message suivant :
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
Est-ce que quelqu’un saurait comment faire pour attendre que le ViewController soit chargé avant de lancer ma fonction ou comment retarder l’appel de ma fonction?
La fonction Sleep(Int) dans AppDelegate.swift ne permet pas de faire ce que je veux, puisque ca met toute l’application en attente
Je vous met tout le code ci-dessous
AppDelegate.swift :
func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
if shortcutItem.type == "fr.xxxxxxxxxxxxxx.xxxxxxxxxxxxx.playRadio" {
let mainVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier:"Player") as! ViewController
mainVC.playPlayer()
}
}
ViewController.swift :
@objc func playPlayer() {
setupPlayer()
RadioPlayer.rate = 1.0
RadioPlayer.play()
playButton.setImage(UIImage(named: "stopbutton"), for: .normal) //le soucis vient d'ici...
}
Merci à vous pour le temps passé à lire ceci