Swift 从解析到按钮操作的url
我有一个带有自定义单元格的PFQueryTableViewController,每个单元格有一个标签和一个按钮,标签(位置)是一个文本,按钮(票证),当您单击它时,您将进入一个url。我已经将标签和url的文本作为字符串存储在Parse.com上,但我的问题是如何让每个按钮都起作用,并从Parse数据库中打开存储的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
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?字符串
。希望这有帮助!谢谢你的帮助,我终于成功了。