将标签数据从tableview传递到另一个视图控制器

问题描述:

我正在使用这个视频作为示例,以我的代码如下。 Swift To MYSQL using PHP当从PHP获取数据到tableview时,我使用了视频的后半部分。我能够让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提取的数据。我的问题是,我可以使用按钮将(或显示)该数据从标签推送到另一个视图控制器吗?有点像购物车,我想在行中添加一个按钮,将标签添加到另一个视图控制器,所以我可以在那里查看它(作为另一个标签或其他方法)。

我知道可能有关于将数据传递给另一个视图控制器的类似帖子,但没有我认为我可以使用(或至少找到)类似于此。

+0

您可以使用标签文本配置单元格。我假设这个文本存储在一个数组中。当你触摸一个单元格'didSelectRowAtIndexPath'被调用时,会给你'indexPath.row',你可以使用它来访问该数组。从那里你可以分配你的下一个控制器并设置'viewController.text = touchedText'然后推动控制器。 –

+0

如果你想设置一个segue的方式,那么你将不得不重写'prepareForSegue',然后调用'tableView.indexPathForSelectedRows'并获得indexPath。然后'(segue.destinationViewController as!SomeClass).text = touchedText'。这是唯一合理的两种方法。 –

+0

你不应该做func get(){ let url = NSURL(string:“http://cgi.soic.indiana.edu/~team20/BreakfastGetInfo.php”) let data = NSData(contentsOfURL:url!) values = try! NSJSONSerialization.JSONObjectWithData(data !,选项:NSJSONReadingOptions.MutableContainers)as! NSArray tableView.reloadData() }。 – satheeshwaran

是的。可能。

您希望将数据从Tableview传递到Next View Controller。对?

写泰伯维委托方法

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

后返回此处。好的,我会尝试使用这种委托方法并回复您。谢谢您的帮助! – user3795450