override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "toChat2" {
guard let navController = segue.destinationViewController as? UINavigationController,
let chatController = navController.viewControllers.first as? ChatViewController else { return }
let indexPaths = self.tableView!.indexPathsForSelectedRows! //crashes on this line
let indexPath = indexPaths[0] as NSIndexPath
chatController.senderId = FIRAuth.auth()?.currentUser?.uid
chatController.senderDisplayName = FIRAuth.auth()?.currentUser?.displayName ?? ""
chatController.friendId = messagesArray[indexPath.row].userId
chatController.userName = messagesArray[indexPath.row].name
}
В чем проблема? Я пробовал по-другому. Я объявляю две переменные и пытались действовать здесь:быстро, как исправить готовность к segue для просмотра стола
var userId:String!
var userName:String!
func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
userId = messagesArray[indexPath.row].userId
userName = messagesArray[indexPath.row].name
self.performSegueWithIdentifier("toChat2", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "toChat2" {
guard let navController = segue.destinationViewController as? UINavigationController,
let chatController = navController.viewControllers.first as? ChatViewController else { return }
chatController.senderId = FIRAuth.auth()?.currentUser?.uid
chatController.senderDisplayName = FIRAuth.auth()?.currentUser?.displayName ?? ""
chatController.friendId = userId
chatController.userName = userName
}
}
Но таким образом он работает, но не правильно, после нажатия одного из элементов в виде таблицы, не отвечая, и только второй щелкните по нему движется, но с данными из первый клик! :) как это исправить?
мой ошибка. извините –
Нет проблем. Это привело меня в замешательство в прошлом - я думаю, что все сделали это хотя бы один раз. – creeperspeak
Это правда xD ... –