2016-12-22 4 views
1

J'ai créé une application qui a 4 UIButtons sur le VC initial. Chaque bouton se connecte à un autre VC (même dans tous les cas), mais avec des paramètres différents.Appel d'action rapide en 3D UIButton

@IBAction func googleBtnPressed(_ sender: AnyObject) { 
    searchEngine = "Google" 
    print(searchEngine) 
    performSegue(withIdentifier: "google", sender: nil) 

} 

@IBAction func bingBtnPressed(_ sender: AnyObject) { 
    searchEngine = "Bing" 
    print(searchEngine) 
    performSegue(withIdentifier: "google", sender: nil) 

} 

@IBAction func ddgBtnPressed(_ sender: AnyObject) { 
    searchEngine = "DuckDuckGo" 
    print(searchEngine) 
    performSegue(withIdentifier: "google", sender: nil) 

} 

@IBAction func customBtnPressed(_ sender: AnyObject) { 
    performSegue(withIdentifier: "custom", sender: nil) 

} 

if let vc = segue.destination as? ViewController { 
      if searchEngine == "Google" { 
        vc.url = NSURL(string: "https://www.google.com") 
        vc.segueUsed = "google" 
        vc.searchEngine = "google" 
      } 

      else if searchEngine == "Bing" { 
        vc.url = NSURL(string: "https://www.bing.com") 
        vc.segueUsed = "google" 
        vc.searchEngine = "bing" 
      } 

      else if searchEngine == "DuckDuckGo" { 
        vc.url = NSURL(string: "https://www.duckduckgo.com") 
        vc.segueUsed = "google" 
        vc.searchEngine = "duckduckgo" 
      } 
     } 

    }else if segue.identifier == "custom"{ 
     print(segue.identifier!) 
     if let vc = segue.destination as? ViewController { 
      vc.segueUsed = "custom" 
     } 
    } 

Je veux appeler ces 4 boutons de l'écran d'accueil à l'aide Actions rapides 3D tactiles. Je l'ai déjà créé des entrées dans le fichier info.plist, mais je suis en difficulté lors de la manipulation de la réponse à AppDelegate.swift

<key>UIApplicationShortcutItems</key> 
<array> 
    <dict> 
     <key>UIApplicationShortcutItemType</key> 
     <string>$(PRODUCT_BUNDLE_IDENTIFIER).Google</string> 
     <key>UIApplicationShortcutItemTitle</key> 
     <string>Google</string> 
     <key>UIApplicationShortcutItemIconType</key> 
     <string>google</string> 
    </dict> 
</array> 

Comment puis-je mettre cela?

Merci pour votre aide.

Répondre

0
let yourViewcontroller = self.window?.rootViewController// This view controller should be action view controller 
     let itemKey = shortcutItem.userInfo["<YOUR KEY>"] 
     if itemKey == "Google" { 
      //call google action method 
     } else if itemKey == "Bing" { 
      //call Bing action method 
     } else if itemKey == "Ddg" { 
      //call "Ddg" action method 
     }else if itemKey == "CustomButton" { 
      //call CustomButton action method 
     } 

Remarque: Vous pouvez enregistrer itemKey dans ShortCutItemDictionary.

+0

Pourriez-vous élaborer sur la façon d'appeler les méthodes d'action à partir de appDelegate. –