3d触摸快速动作调用UIButton

时间:2016-12-22 12:54:59

标签: ios swift uibutton 3dtouch quickaction

我创建了一个在初始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>

我该如何实现?

感谢您的帮助。

1 个答案:

答案 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中。