2016-12-22 10 views
1

Я создал приложение с 4 UIButtons на начальном VC. Каждая кнопка переходит в другую VC (во всех случаях), но с разными параметрами.3d touch быстрый вызов действия 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" 
     } 
    } 

Я хочу, чтобы вызвать эти 4 кнопки с главного экрана с помощью Быстрые действия 3d бесконтактном. Я уже создал записи в info.plist файл, но я изо всех сил во время обработки ответа в 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> 

Как это реализовать?

Спасибо за помощь.

ответ

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 
     } 

Примечание: вы можете сохранить itemKey в ShortCutItemDictionary.

+0

Не могли бы вы рассказать о том, как вызвать методы действия из appDelegate. –