基本的に、チャットルームを制御する UIViewController があります。UIViewController が何らかの方法で定義された場合、現在のユーザーはチャネルを離れる必要があります。
現在、私のコードは次のとおりです。
class ChatViewController: SLKTextViewController {
var channel: TWMChannel? = nil
// A ton of other code...
deinit {
channel!.leaveWithCompletion({
_ in
})
}
私は deinit のようなコードしか見たNSNotificationCenter.defaultCenter().removeObserver(self)
ことがなく、これが安全かどうかについてオンラインで何も見つけていません。
本質的に、このView ControllerはUINavigationControllerスタックの一部であり、View Controllerがポップされるたびに(deinitが常に呼び出されると思います)、ユーザーにチャネルを離れてもらいます。ナビゲーション バーの左上の戻るボタンとパン ジェスチャを処理するための好ましい方法がある場合は、実装を確認したいと思います。