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连接。 –