Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 从解析到按钮操作的url_Swift_Url_Button_Parse Platform - Fatal编程技术网

Swift 从解析到按钮操作的url

Swift 从解析到按钮操作的url,swift,url,button,parse-platform,Swift,Url,Button,Parse Platform,我有一个带有自定义单元格的PFQueryTableViewController,每个单元格有一个标签和一个按钮,标签(位置)是一个文本,按钮(票证),当您单击它时,您将进入一个url。我已经将标签和url的文本作为字符串存储在Parse.com上,但我的问题是如何让每个按钮都起作用,并从Parse数据库中打开存储的url 这是密码 class Shows: PFQueryTableViewController { override func queryForTable() -> PFQ

我有一个带有自定义单元格的PFQueryTableViewController,每个单元格有一个标签和一个按钮,标签(位置)是一个文本,按钮(票证),当您单击它时,您将进入一个url。我已经将标签和url的文本作为字符串存储在Parse.com上,但我的问题是如何让每个按钮都起作用,并从Parse数据库中打开存储的url

这是密码

class Shows: PFQueryTableViewController {


override func queryForTable() -> PFQuery {
    let query = PFQuery(className: "Shows")
    query.orderByDescending("createdAt")
    return query  
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! ShowsCell
    let showplace = object?.objectForKey("Place") as? String
    let showtickets = object?.objectForKey("Tickets") as? String
    cell.place.text = showplace
    cell.tickets.tag = indexPath.row
    cell.tickets.addTarget(self, action: #selector(ticketsaction), forControlEvents: .TouchUpInside)
    return cell
    }
}
这是按钮动作

   @IBAction func ticketsaction(sender: UIButton){

    let ticketsurl = String()
    let url = NSURL(string: "\(ticketsurl)")
    UIApplication.sharedApplication().openURL(url!)
  }

您可以使用每个按钮单元格的
indexPath.row
标记每个按钮,并从用于填充列表的数组中获取特定URL。只要将
button.tag
等同于
indexath.row

我终于成功了! 我添加了一个
var ticketsrl:String在我的自定义单元格中,在TicketAction之前,现在如下所示:

    var ticketsurl: String!

@IBAction func ticketsaction(sender: UIButton) {
            let url = NSURL(string: "\(ticketsurl)")
            UIApplication.sharedApplication().openURL(url!)
           }
PFQueryTableView控制器现在是这样的:

class Shows: PFQueryTableViewController {


override func queryForTable() -> PFQuery {
let query = PFQuery(className: "Shows")
query.orderByDescending("createdAt")
return query  
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! ShowsCell
let showplace = object?.objectForKey("Place") as? String
let showtickets = object?.objectForKey("Tickets") as? String
cell.place.text = showplace
cell.tickets.tag = indexPath.row
cell.ticketsurl = showtickets
return cell
   }
}

谢谢回复!如何在每个按钮操作中将“showtickets”作为字符串传递?回答后,每个按钮都用print(sender.tag)打印一个不同的数字,但我如何传递URL?如果在数组中有URL,则可以使用相同的数字将一个与按钮匹配。我想将showtickets字符串传递给tricketsurl字符串,因此,每次按钮将运行ticketsaction中的代码块时,我可能会将所有不同的
对象
s添加到一个数组中,这样我就可以在ticketsaction或其他地方对它们进行寻址…类似于
let showTickets=arrayOfObjects[indexPath.row].objectForKey(“Tickets”)as?字符串
。希望这有帮助!谢谢你的帮助,我终于成功了。