2017-07-13 16 views
0

enter image description hereなぜ私のView Controllerは解放されませんか?

enter image description here

enter image description here

私は2つのストーリーボード最初のストーリーボードrootviewcontrollerが今度は他に容器を含むビュー・コントローラへの2つのコンテナ 1)埋め込みセグエに 各容器点を含む持っていますビューコントローラ。 2)他のストーリーボードにセグを埋め込みます

最初に起動します。ログインが成功すると最初のフローに進みます。現在のコンテナからすべてのビューを削除して、他のストーリーボードにsegueを実行します。

しかし、私は自分のナビゲーションコントローラを持っている他のストーリーボードに移動したとき、すべてのビューコントローラは解放されません。

答えて

0

私は私があなたの質問の権利を得た場合は、の二つの流れをサポートするために、2つのストーリーボードを使用しているすべてのビューを削除することによって、あなたがsegueingしていると言って意味だけど...

理解していませんあなたのアプリ。

フロー1.アプリケーションの登録プロセス

フロー2.(アプリケーションが既に登録されている)ので、あなたが同じ仕事を持つ2枚の別々のストーリーボードを持っている必要はありませんレジスタ

後、画面に直接移動それは別の流れだからです。

appDelegateで、ルートビューコントローラを登録してプログラムで変更して、ユーザーが正しい画面にジャンプするかどうかを確認します。

注:あなたがVCの放出を防止する強力な基準周期 を有していてもよい呼び出されていないdeinitオプションのルート・ビュー・コントローラ場合

self.window?.rootViewController = mainStoryboard?.instantiateViewControllerWithIdentifier("tabBarVCID") 

に識別子を追加する必要があります

スウィフトPR:The Swift Programming Language: Automatic Reference Countingのクラスインスタンス部との間の解決強い参照サイクルでは、Appleはこの問題に対処する方法について説明します が弱い参照と未所有の の参照のクラスタイプのプロパティで動作するときに、強い参照サイクルを解決する2つの方法が用意されています。

弱いおよび所有されていない参照では、参照サイクル の1つのインスタンスで、他のインスタンスを強く保持せずに参照できます。 インスタンスは、参照サイクルを作成することなく互いに参照することができます。

+0

私は、別のストーリーボードに行き、現在のコンテナ(ログインフロー)からすべてのビューを取り除くためにpeform segueを呼び出すと言っています。別のストーリーボードがあります。ログイン後にチェックすると、rootview controllerには新しいナビゲーションコントローラがありますが、login/singup viewコントローラのdeinitは呼び出されません。 – Santhosh

+0

私の編集をチェックしてください –

関連する問題