我正在使用可扩展的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/

10-11 17:13