2016-03-23 15 views
0

カスタムセルを持つPFQueryTableViewControllerがあります。すべてのセルに1つのラベルと1つのボタンがあり、ラベル(Place)はテキストで、ボタン(Tickets)はクリックすると表示されますthe url。私はすでにラベルとURLのテキストをParse.comの文字列として保存していましたが、私の問題は、すべてのボタンをアクションにしてこの保存されたURLを私の解析データベースから開く方法です。ここでurl from Parse toボタンアクション

はコード

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!) 
    } 

答えて

0

最後に作成しました。 私はticketsaction前に、私のカスタムセルでvar ticketsurl: String!を追加し、次のようになります。

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 
    } 
} 
0

はあなたは、そのセルのindexPath.rowで各ボタンをタグ付けし、使用している配列から特定のURLをつかむことができていますリストに値を設定します。 button.tagindexPath.rowと同じにしてください。

+0

ありがとう!すべてのボタンアクションで "showtickets"を文字列として渡すにはどうすればよいですか?あなたの答えの後、すべてのボタンはprint(sender.tag)で別の番号を印刷しますが、どのようにURLを渡すことができますか? – JECon

+0

配列内にある場合は、同じ番号を使用してボタンに一致させることができます。 – diatrevolo

+0

私はshowickerの文字列をtricketsurlの文字列に渡したいので、ボタンが実行されるたびに ticketsaction – JECon