я есть ThirdView в моем «старт» зренияdidSelectRowAtIndexPath performSegueWithIdentifier = я получаю ноль в целевой точки зрения
import Foundation
import UIKit
class ThirdView : UITableViewController {
var jsonz:NSArray = ["Ray Wenderlich"];
var valueToPass : String?;
var programVar : String?;
override func viewDidLoad() {
super.viewDidLoad()
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
var newProgramVar = "lol";
let destinationVC = segue.destinationViewController as! FourthView
destinationVC.programVar = newProgramVar
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1;
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.jsonz.count;
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let myCell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell
myCell.textLabel?.text = self.jsonz[indexPath.row] as? String;
return myCell;
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let valueToPass = "asd";
let destinationVC = FourthView()
destinationVC.valuePassed = valueToPass;
self.performSegueWithIdentifier("restDetail", sender: tableView);
}
}
У меня есть идентификатор SEGUE: restDetail
Когда я запустить проект и нажмите на ячейку , я не могу получить переменную valuePassed в «втором» представлении, я получаю нуль. Пожалуйста, помогите, почему? Но я нормально получаю переменную programVar от функции prepareForSegue, это нормально. У меня есть только проблема с didSelectRowAtIndexPath segue.
Это мой FourthView:
import UIKit
class FourthView: UIViewController {
var valuePassed:String!
var programVar:String!
override func viewDidLoad() {
super.viewDidLoad()
println(valuePassed);
println(programVar);
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Смотрите здесь то, что я имею в выходе:
nil
lol
nil
lol
И второй вопрос: почему на выходе он показывает в 4 раза? Извините за мой английский.
Для кого-то, у кого такая же проблема, посмотрите, что вам нужно добавить для функции prepareForSegue() (в моем примере): 'let indexPath: NSIndexPath = self.tableView.indexPathForSelectedRow()!', А затем вы можете использовать свой indexPath в prepareForSegue, например, что я использовал: 'destinationVC.name = self.jsonz [indexPath.row] as? Строка; '. В FourthView я объявляю String ** name **, и это одобрено. – GenRiH