我创建了一个在初始VC上有4个UIButton的应用程序。 每个按钮都会切换到另一个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"
}
}
我想使用3d Touch的快速操作从主屏幕调用这4个按钮。 我已经在 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 :(得分: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中。