2016-08-12 77 views
0

我試圖將UI上的按鈕鏈接到解析JSON響應後收到的鏈接。我添加了一個帶有包含鏈接的變量的按鈕。從JSON數據添加到UIButton的URL鏈接

@IBAction func goOnline(sender: AnyObject) { 
    UIApplication.sharedApplication().openURL(prodURL) 
} 

我使用viewDidLoad中調用的方法解析JSON數據。

if let convertedJSONIntoDict = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [String: AnyObject] { 
     if let JSONurl = convertedJSONIntoDict["url"] as? String { 
      dispatch_async(dispatch_get_main_queue()) {() -> Void in 
       self.prodURL = NSURL(string: JSONurl)! 
      } 
     } 
} 

當我點擊按鈕,我沒有得到任何迴應。與往常一樣,任何幫助非常感謝。

回答

1

我沒有足夠的信譽發表評論,所以我在這裏加入

你在JSON網址獲得什麼樣的價值??? 即使你不需要保存在主隊列中的值,你也可以這樣寫

self.prodURL = NSURL(string: JSONurl)! 
+0

我收到一個帶有Web鏈接的字符串。其實...我現在雙重檢查。 –

+0

對不起,你可能會做些什麼。我認爲網頁鏈接丟失了。謝謝! –

+0

會這樣做,感謝您的建議! –

0

斯威夫特3

定義你的字符串和變量,那麼它的下面的代碼:

@IBAction func websiteButton(_ sender: Any) { 

    let websiteURL = ("http://") + JSONurl! 

    guard let url = URL(string: websiteURL) else { 
     return //be safe 
    } 

    if #available(iOS 10.0, *) { 
     UIApplication.shared.open(url, options: [:], completionHandler: nil) 
    } else { 
     UIApplication.shared.openURL(url) 
    } 

} 

這應該工作。