Hier ist der Code, den ich derzeit habe:Variable Null, wenn versucht wird, Variable zu übergeben, um Controller mit Segment
var valueToPass: String!
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
let indexPath = tableView.indexPathForSelectedRow();
let currentCell = tableView.cellForRowAtIndexPath(indexPath!) as UITableViewCell!;
valueToPass = currentCell.textLabel.text // valueToPass now equals "test"
performSegueWithIdentifier("yourSegueIdentifer", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var viewController = segue.destinationViewController as AnotherViewController
viewController.passedValue = valueToPass // valueToPass equals nil here? Why?
}
wie Sie sehen können, habe ich in didSelectRowAtIndexPath
"test" zu valueToPass zugeordnet, sondern in prepareForSegue
ist valueToPass nil? Warum?
ist Ihre Tabellenansicht in einem Storyboard mit dem Segment? Wenn das der Fall ist, bin ich mir nicht sicher, dass 'tableView: didSelectRowAtIndexPath:' tatsächlich vor 'prepareForSegue: sender:' aufgerufen wird. Sie können dies testen, indem Sie Haltepunkte in beiden Methoden löschen und erst beim Tippen auf die Zelle sehen, was zuerst passiert ist. Versuchen Sie, 'prepareForSegue: sender:' frei von impliziten Abhängigkeiten von anderen Methoden zu halten. – markedwardmurray