2016-04-15 17 views
1

私は以下のコードを使ってこのビデオを例として使用しています。 Swift To MYSQL using PHP私は、PHPのデータをtableviewに取り込む際に、ビデオの後半部分を使用しました。私は、テーブルビューのセル行に正常にPHPから項目を表示するためにtableviewを得ることができました。テーブルビューから別のビューコントローラにラベルデータを渡す

import Foundation 
import UIKit 
import WebKit 

class BreakfastGetController: UIViewController, UITableViewDelegate, UITableViewDataSource { 

@IBOutlet var tableView: UITableView! 


var values:NSArray = [] 

override func viewDidLoad() { 
    super.viewDidLoad() 
    get(); 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


func get(){ 
    let url = NSURL(string: "http://cgi.soic.indiana.edu/~team20/BreakfastGetInfo.php") 
    let data = NSData(contentsOfURL: url!) 
    values = try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSArray 
    tableView.reloadData() 
} 

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return values.count; 
} 
//call the specific row and displying in the cell row 
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! SpecialCell 
    let maindata = values[indexPath.row] 
    cell.name.text = maindata["name"] as? String 
    return cell; 

} 

} 

各セル行にはラベルがあり、そのラベルには、私がPHPから取得したデータが表示されます。私の質問は、ボタンから他のView Controllerにそのデータをプッシュ(または表示)できますか?ショッピングカートのようなもので、ラベルを別のビューコントローラーに追加する行のボタンを使用したいので、別のラベルやその他の方法で表示することができます。

他のビューコントローラにデータを渡すことに関する同様の記事があるかもしれませんが、これに似ていると思うものはありませんでした。

+0

ラベルのテキストを使用してセルを設定します。私はこのテキストが配列に格納されていると仮定します。セルに触れると 'didSelectRowAtIndexPath'が呼び出され、その配列にアクセスするために使用できる' indexPath.row'が与えられます。そこから次のコントローラを割り当てて 'viewController.text = touchedText'を設定してからコントローラを押してください。 –

+0

segueの方法を設定する場合は、 'prepareForSegue'をオーバーライドしてから' tableView.indexPathForSelectedRows'を呼び出してindexPathを取得する必要があります。次に、 '(segue.destinationViewController as!SomeClass).text = touchedText'を実行します。これらは、それを行う唯一の合理的な2つの方法です。 –

+0

func get(){ let url = NSURL(文字列: "http://cgi.soic.indiana.edu/~team20/BreakfastGetInfo.php") let data = NSData(contentsOfURL:url!) 値=試してください! NSJSONSerialization.JSONObjectWithData(データ!,オプション:NSJSONReadingOptions.MutableContainers)を!メインスレッドのNSArray tableView.reloadData() } – satheeshwaran

答えて

3

はい。可能。

テーブルビューから次ビューコントローラにデータを渡したいとします。右?

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    var value = contentArray.objectAtIndex(indexPath.row) 

    var secondVC : SecondViewController 
     = self.storyboard ?.instantiateViewControllerWithIdentifier(identifier: "SecondViewController") 

    secondVC.contentValue = value as? String 

    self.navigationController ?.pushViewController(secondVC, animated: YES) 

} 

テーブルビューのデリゲートメソッド

を書くには、それがお役に立てば幸いです。

+0

を試した後、私はあなたの方法を試してみて、後でここに戻ってきます。さて、私はこのDelegateメソッドを試してみましょう。助けてくれてありがとう! – user3795450