2017-07-16 8 views
0

タイトルが示すように、私は単に情報を渡すだけです。ビューを変更せずにビューコントローラ間でデータを渡す

私は現在、タブ付きのビューアプリケーションを使用しており、ユーザーはテキストフィールドにデータを入力し、ボタンを押してから、同じビューコントローラー上に入力したテキストでラベルを埋めます。

その情報を他のタブに送信し、ラベルを記入したいと考えています。

私はこれをプロトコルまたはセグによって行うことができますが、私は現在のタブに残したいと思います。私はこれをどこかの例として見たことがなく、ビューを別の画面に切り替えるだけです。

入力した文字列を単に渡すだけで、ビューを変更する方法はわかりません。

+0

この回答を見てください。 https://stackoverflow.com/a/27619420/1630618 – vacawama

答えて

3

これはすべて間違っています。ビューコントローラ間でデータを渡す必要がない、またはデータを渡す必要はありません。あなたのアプリケーションがMVC(モデル、ビュー、コントローラ)を適切に使用する場合は、モデルの更新が必要です。そのモデルは更新されているはずです。モデルを気にする人は、必要に応じてこれらの通知に反応する必要があります。

複数のビューコントローラを持つタブコントローラがあります。 2つ以上のView Controllerが同じデータモデルに興味を持っています。両方ともデータの同じインスタンスを参照し、データモデルのそのインスタンスへの変更について通知されるように設定する必要があります。

1つのビューコントローラは、ビューを介してデータモデルを更新します。データモデルは、更新された通知を送信します。関心のあるView Controllerはこの通知を受け取り、更新されたデータモデルに基づいて独自のビューを更新します。

ビューの切り替えは必要ありません。セグは必要ありません。異なるView Controller間の通信は必要ありません。

NotificationCenterのドキュメントを参照して、メッセージをブロードキャストする方法、およびそのようなメッセージを受信する方法について調べてください。

関連する問題