iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
自我挑戰組

來寫看看app好了! Swift探索之旅系列 第 26

Day#26 傳送對話(1)

前言

前一天結束在點選某個搜尋到的使用者,今天接著做跟該使用者展開對話吧!

New Conversation

NewConversationViewController

我們將該點選的使用者指定給targetUserData,然後把這個資料推到已存在的對話紀錄table當中,因此需要新增一個closure使用。

public var completion: (([String: String]) -> (Void))?

然後在昨天新增的地方,接續新對話的開啟,我們加上程式

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    tableView.deselectRow(at: indexPath, animated: true)

    let targetUserData = results[indexPath.row]

    dismiss(animated: true, completion: {
        self?.completion?(targetUserData)
    })
}

ConversationViewController

didTapComposeButton

那由於剛剛新增了closure,我們要修改didTapComposeButton程式如下,也就是把closure實作加上去

@objc private func didTapComposeButton() {
    let vc = NewConversationViewController()
    vc.completion = { [weak self] result in
        print("\(result)")
        self?.createNewConversation(result: result)
    }
    let navVC = UINavigationController(rootViewController: vc)
    present(navVC, animated: true)
}

而其中的createNewConversation方法呢,也一起新增

private func createNewConversation(result: [String:String]) {
    let vc = ChatViewController()
    vc.title = ""
    vc.navigationItem.largeTitleDisplayMode = .never
    navigationController?.pushViewController(vc, animated: true)
}

其實跟先前mock過的內容一樣,就先放過來!

結語

今天的內容很短...因為一直有bug,但我還在找@@
可能明天先跳回profile picture的部分~也不一定!

若上述內容有誤或可以改進的部分,歡迎留言以及提出任何指教~
謝謝 ヘ| ´ω` |ノ


上一篇
Day#25 尋找其他使用者(2) 資料結構
下一篇
Day#27 上傳照片
系列文
來寫看看app好了! Swift探索之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言