2016-09-05 7 views
0

テーブルビューに10個の乱数を表示するアプリケーションを作成しました。これは私が異なるビューコントローラーのセルからテキストラベルへのテキストの移動

override func numberOfSections(in tableView: UITableView) -> Int { 
    return 1 
} 

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return 10 
} 


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "ShowNumber", for: indexPath) 

    // Configure the cell... 
    cell.textLabel?.text = "\(indexPath.row + 1): \(Int(arc4random_uniform(10001)))" 

    return cell 
} 

今、私は1つのセルをクリックすると、別のビューコントローラに、それは乱数を表示するページの中央に撮影することができるようにしたいを使用するコードです。私はすべてのビューコントローラを設定し、元のテーブルビューにリンクしている。私はちょうどsegueを通して私のデータを渡すことに問題があります。これは私がこれまで持っていたものです。私はそれが未完成であることを知っている、私はちょうど何をすべきかわからない。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "showRandomNumber" { 
     let controller = segue.destination as! ShowNumberTableViewController 
     let selectedRow = (tableView.indexPathForSelectedRow as NSIndexPath?)?.row ?? 0 
     controller.LabelText = 
    } 

LabelTextが、私はにデータを渡したいラベルの名前ですが、私はどのように

答えて

1

indexPathForSelectedRowを使用するのか分からない、あなたはトリガのセルへの参照を取得することができますセグエ。そのセル内のtextLabelにアクセスし、値を取得して次のView Controllerに渡すことができます。あなたがスクロールするとき

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "showRandomNumber" { 
     let controller = segue.destination as! ShowNumberTableViewController 
     if let indexPath = tableView.indexPathForSelectedRow { 
      let cell = tableView.cellForRowAtIndexPath(indexPath) as UITableViewCell 
      if let textToPass = cell.textLabel.text { 
       controller.labelText = textToPass 
      } 
     } 
    } 
} 

はその後ShowNumberTableViewControllerにあなたがvar labelTextとあなたのviewDidLoad()あなたが

centerLabel.text = labelText 
+0

それが宣言されていないタイプのエラーと言って使用することを示して「ShowNumber」。 ShowNumberは私のカスタムセルの名前です。私はそれをどこかに宣言する必要がありますか? –

+0

@TylerMiddletonこれはコードに基づいた例です。あなたのセルにカスタムクラスがありますか? – Shades

+0

@TylerMiddletonそうでなければ、そのままに変更してください! UITableViewCell – Shades

0

あなたがやっている方法でそのビューコントローラにtextLabelに割り当てることができますにしたい、番号が変更されますテーブルビュー。私はあなたが配列の数値を保存する必要がありますと思います。私はこの方法を行うだろうprepareForSegue:で選択された数をつかむ方法について

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "showRandomNumber" { 
     if let cell = sender as? UITableViewCell, indexPath = tableView.indexPathForCell(cell) { 
      let selectedNumber = numbers[indexPath.row] 
      controller.labelText = String(selectedNumber) 
     } 
    } 
} 
関連する問題