2016-04-05 6 views
0

誰かが私に論理を説明することができますか? VC1でタブバーコントローラとセグのナビゲーション

enter image description here

( "アイテム1")私はテーブルを持っている:

は、私は次のような構造を持っています。表のセルは、VC2(「Item」)と接続され、segueを使用してVC2にいくつかの変数を渡します。この部分はうまく動作します。テーブルのセルを押すと、それは私をVC2に連れて行きます。

私が理解できないのは、下のタブビューコントローラが私がまだVC1にいることを示す理由です。

enter image description here

そして私もタブコントローラ(「アイテム」)にVC2を押すことができ、それはそれが表示されますが、渡された変数なし(もちろん、それは変数を表示べきではない)理由。

+0

vc1のデータが必要な場合は、VC2をtabControllerにリンクする必要があるのはなぜですか? – MwcsMac

+0

最初のアイデアは、選択されたセルからより多くの指定されたデータを表示することです。そして、それがタブコントローラからアクセスされた場合、より一般的なデータを表示します – Almazini

答えて

0

アプリケーションがタブバーを読み込むと、VC2のインスタンスがインスタンス化されます。 segueを実行すると、別のインスタンスがインスタンス化され、tab1であるナビゲーションスタックにスローされます。この時点で、あなたは決して最初のタブを残しませんでした。 2番目のタブをクリックすると、segueを通過したデータがないVC2の元のインスタンスが表示されます。

+0

私がこれを行っていた場合、タブバーを管理するクラス(通常はappdelegate)にNSNotificationリスナーがあります。データがVC1から取得されるとき、私は通知を呼び出し、必要なデータオブジェクトがあればそれを渡します。そのクラス(通常は非公開)は通知を聞き取り、データオブジェクトにアクセスし、VC2タブに手動でナビゲートします。このクラスは正しいインスタンスにアクセスできるので、必要なデータを渡すことができます。明確化のために –

+0

ありがとう! VC2の既存のインスタンスにセグを実行することは可能ですか?多分prepareforsegueメソッドで私はlet viewController = segue.destinationViewControllerを使う必要があります! self.SecondViewController – Almazini

関連する問題