Ich dränge otherUserUid und otherUserFullName auf einen anderen View-Controller, aber es wird nicht sofort aufgerufen. Die Informationen hinken hinterher und es dauert 2 Klicks, bis die Informationen angezeigt werden.Bereiten Sie sich auf die Verzögerung vor. Informationen sind nachgelagert, werden aber angezeigt
Ich denke, preparForSegue: wird vor didSelectRowAtIndexPath aufgerufen: Irgendwelche Lösungen, wie das zu beheben?
Prost!
Überschreibung func Tableview (Tableview: UITableView, DidSelectRowAtIndexPath indexPath: NSIndexPath) {
self.performSegueWithIdentifier("jsqDirectory", sender: self)
let indexPath = tableView.indexPathForSelectedRow!
let currentCell = tableView.cellForRowAtIndexPath(indexPath)! as UITableViewCell
self.otherUserFullName = (currentCell.textLabel?.text)!
print(self.otherUserFullName)
self.otherUserUid = (currentCell.detailTextLabel?.text)!
print(self.otherUserUid)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "jsqDirectory" {
if let viewController = segue.destinationViewController as? JSQViewController{
viewController.senderDisplayName = self.fullName
viewController.senderId = self.firebase.authData.uid
viewController.otherUid = self.otherUserUid
viewController.otherUser = self.otherUserFullName
}
}
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("directoryCell") as UITableViewCell!
let directoryItem = items[indexPath.row]
cell.textLabel?.text = directoryItem.fullName
cell.detailTextLabel!.text = directoryItem.key
cell.detailTextLabel!.hidden = true
return cell
}
Dank Kumpel. Es funktionierte! –
Sie haben den Vorgang viel zu früh ausgeführt, als die Werte an den Controller der nächsten Ansicht zu übergeben. Stellen Sie sicher, dass Sie diese Antwort als Korrekt und Daumen hoch markieren –