我正在使用可扩展的tableView。单元格中的一个将用于按钮,以在野生动物园中打开URL链接。按钮IBOulet在WebsiteCell类中,数据和视图控制器在Detail View中。
在Detail View类中,尝试在显示websiteCell.venueURL(UIButton)
的按钮时调用时出错。错误显示为“通话中的额外参数”。
而不是UIButton应该在这里什么?
WebsiteCell类
class WebsiteCell: UITableViewCell {
@IBAction func venueURL(sender: UIButton) {
}
详细视图类
else if indexPath.row == 3 {
let websiteCell = tableView.dequeueReusableCellWithIdentifier("websiteCell") as! WebsiteCell
let venueURL = venues!["URL"] as! String
websiteCell.venueURL(UIButton){
UIApplication.sharedApplication().openURL(NSURL(string: venueURL)!)
}
最佳答案
我将情节提要中的按钮添加到websiteCell类型的原型单元中。然后,您可以将该按钮作为@IBAction链接到您的websiteCell类,并且打开URL的代码应该放在IBAction中。
class WebsiteCell: UITableViewCell {
var venueURL: String?
@IBAction func venueURL(sender: UIButton) {
UIApplication.sharedApplication().openURL(NSURL(string: venueURL)!)
}
}
然后,您的cellForRowAtIndexPath方法将如下所示:
else if indexPath.row == 3 {
let websiteCell = tableView.dequeueReusableCellWithIdentifier("websiteCell") as! WebsiteCell
websiteCell.venueURL = //url here
return websiteCell
}
关于ios - UIButton在单独的类中调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39938421/