Быстрое действие 3D Touch UIButton
Я создал приложение, которое имеет 4 кнопки UIB на начальном VC. Каждая кнопка переключается на другой VC(одинаковый во всех случаях), но с разными параметрами.
@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 Touch. Я уже создал записи в файле 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>
Как мне это реализовать?
Спасибо за помощь.
1 ответ
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.