Как перейти от View Controller к TableViewCell - PullRequest
0 голосов
/ 09 декабря 2018

Я хочу показать чат с выбранным пользователем, если текущий пользователь выбрал какой-либо разговор в ConversationViewcontroller.

На этот раз мое решение выглядит так, но оно не работает:

Настройка уведомлений в ConversationViewController Я вызываю его в настройке и вызываю в viewDidLoad:

     func customization()  {
self.navigationController?.interactivePopGestureRecognizer?.delegate = nil
//         notification setup
        NotificationCenter.default.addObserver(self, selector: #selector(pushToUserMesssages(notification:)), name: NSNotification.Name(rawValue: "showUserMessages"), object: nil)
}

Показать ChatViewController с указанным пользователем:

@objc func pushToUserMesssages(notification: NSNotification) {
    if let user = notification.userInfo?["user"] as? UserModel {
        self.selectedUser = user
        self.performSegue(withIdentifier: "segue", sender: self)
    }
}

Подготовка перехода в ConversationViewController:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "segue" {
        let vc = segue.destination as! ChatViewController
        vc.currentUser = self.selectedUser
    }
}

Выполнение перехода в TableView:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if self.items.count > 0 {
        self.selectedUser = self.items[indexPath.row].user
        self.performSegue(withIdentifier: "segue", sender: self)
    }
}

Но если я нажму на чат, который хочу открыть, ничего не получится.Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 09 декабря 2018

Вы пропускаете

 NotificationCenter.default.post(name: NSNotification.Name(rawValue: "showUserMessages"), object: nil, userInfo: ["user":user])

везде, где вам нужно сделать переход

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...