Я изо всех сил пытаюсь передать данные, которые я получил из своей базы данных, до подробного представления, в котором показана дополнительная информация. По моему мнению, у контроллера есть метод GET(), который получает данные из базы данных. Я изо всех сил пытаюсь передать эти данные через segue. У меня также есть файл Cell.swift, который состоит из четырех меток. Я просто пытаюсь передать данные, которые пользователь нажимает в ячейке таблицы, на элемент управления подробным обзором.Передача данных базы данных через segue
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{
@IBOutlet var TableView: UITableView!
@IBAction func refresh(sender: AnyObject) {
get()
}
var values:NSArray = []
override func viewDidLoad() {
super.viewDidLoad()
get();
}
func get(){
let url = NSURL(string: "http://get.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;
}
// This function is called before the segue
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// get a reference to the second view controller
let secondViewController = segue.destinationViewController as! DetailedViewController
// set a variable in the second view controller with the String to pass
secondViewController.d = "ddd";
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! SpecialCell
let maindata = values[indexPath.row]
cell.RecipeName.text = maindata["RecipeName"] as? String
cell.IngredientsList.text = maindata["IngredientList"] as? String
cell.Method.text = maindata["Method"] as? String
cell.Rec.text = maindata["PhotoURL"] as? String
var urlString = maindata["PhotoURL"] as? String
var url = NSURL(string: maindata["PhotoURL"]as! String)!
var data = NSData(contentsOfURL: url)!
cell.DaImage.image = UIImage(data: data)
return cell;
}
где проблема? Точно так же вы устанавливаете 'd', вы также можете установить переменную' values'. – luk2302
bit confused, как бы я это сделал? – Brad
Лучшим будет реализация didSelectRowAtIndexPath, а затем получить элемент и вызвать PerformSegueWithIdentiifer и отправить выбранный элемент в параметре отправителя, а на подготовительном этапе захватить его и отправить его на следующий контроллер представления (также не забудьте проверить на segue . identifier в этом методе) –