0
我使用ActiveLabel來處理標籤的URL。要使用WebView
打開UIViewController
以顯示URL的內容,我想使用委託方法。/動作,委託方法不叫
我曾嘗試不同的方法來調試我的問題。
protocol ActiveLabelURLDelegate {
func activeLabelURLDelegate(url: NSURL)
}
extension FirstVC: ActiveLabelURLDelegate {
func activeLabelURLDelegate(url: NSURL) {
print("debug activeLabelURLDelegate called") // THIS PRINT WILL NOT CALLED
let vc = stb.instantiateViewControllerWithIdentifier("SecondVC") as! SecondVC
vc.webSite = url
self.navigationController?.pushViewController(vc, animated: true)
}
}
class Cell: UITableViewCell {
@IBOutlet weak var myLabel: ActiveLabel!
var labelURLDelegate : ActiveLabelURLDelegate?
override func awakeFromNib() {
myLabel.handleURLTap { givenURL in
print("Success. You just tapped the \(givenURL) URL") // THIS PRINT IS CALLED
self.labelURLDelegate?.activeLabelURLDelegate(givenURL)
}
}
}
之後,這是不工作我實現了一個幫助功能,調試所謂的。
func openURL(url: NSURL) {
print("debug openURL called") // THIS PRINT IS CALLED AS WELL
labelURLDelegate?.activeLabelURLDelegate(url)
}
通過調用:
myLabel.handleURLTap { givenURL in
print("Success. You just tapped the \(givenURL) URL") // STILL CALLED
self.openURL(givenURL)
}
正如你可以在打印報表看,一切正常,直到則委託調用。代理功能activeLabelURLDelegate
未被調用。我錯過了什麼?在同一個單元格中,我使用4個其他代表UIButtons
,並且它們工作正常。
PS:鏈接將被正確地顯示爲正確的URL被打印到控制檯用戶界面內&鏈接。
一個好的經驗法則:當代碼看起來像它應該工作,但沒有,請檢查您的出口和委託的連接。 –
謝謝。我會記住這一點 –
哦,並檢查IBAction連接。 –