代码之家  ›  专栏  ›  技术社区  ›  RandomGeek

UIAlertController按钮功能不工作

  •  4
  • RandomGeek  · 技术社区  · 8 年前
    let location =  CLLocationCoordinate2D(latitude: 32.075300, longitude: 34.782563)
    
        @IBAction func DirectionsTolocationButton(_ sender: Any) {
            // Create the AlertController and add its actions like button in ActionSheet
            let ActionSheet = UIAlertController(title: "Please Select A Navigation Service.", message: nil, preferredStyle: .actionSheet)
    
            let AppleMapsButton = UIAlertAction(title: "Apple Maps", style: .default) { action -> Void in
    
                let destinationName = (self.barNameTemplate ) 
                self.openMapsAppWithDirections(to: self.CoordinatesTemplate, destinationName: destinationName)
                print("Apple Map Chosen!")
    
            }
            let WazeButton = UIAlertAction(title: "Waze", style: .default) { action -> Void in
    
                func openWaze(location : CLLocationCoordinate2D) {
                    if UIApplication.shared.canOpenURL(URL(string: "waze://")!) {
                        // Waze is installed. Launch Waze and start navigation
                        let urlStr: String = "waze://?ll=\(location.latitude),\(location.longitude)&navigate=yes"
                        UIApplication.shared.openURL(URL(string: urlStr)!)
                    }
                    else {
                        // Waze is not installed. Launch AppStore to install Waze app
                        UIApplication.shared.openURL(URL(string: "http://itunes.apple.com/us/app/id323229106")!)
                    }
                }
                print("Waze Chosen!")
            }
    

    <key>LSApplicationQueriesSchemes</key>
    <array>
            <string>waze</string>
    </array>
    

    为什么它对我不起作用?

    1 回复  |  直到 8 年前
        1
  •  5
  •   KKRocks    8 年前

    您需要在函数外添加函数,并按如下方式调用。

    func openWaze(location : CLLocationCoordinate2D) {
                    if UIApplication.shared.canOpenURL(URL(string: "waze://")!) {
                        // Waze is installed. Launch Waze and start navigation
                        let urlStr: String = "waze://?ll=\(location.latitude),\(location.longitude)&navigate=yes"
                        UIApplication.shared.openURL(URL(string: urlStr)!)
                    }
                    else {
                        // Waze is not installed. Launch AppStore to install Waze app
                        UIApplication.shared.openURL(URL(string: "http://itunes.apple.com/us/app/id323229106")!)
                    }
                }
    

    呼叫方式如下

    let WazeButton = UIAlertAction(title: "Waze", style: .default) { action -> Void in
    
                self. openWaze(location : your corrdinates)// call here your function
                print("Waze Chosen!")
            }