2017-06-10 15 views
0

2つのインターフェイスコントローラ間に文字列を渡したいとします。2つのインターフェイスコントローラ間でデータを渡す

var level: String = ("easy") 

そしてInterfaceController2にその変数にアクセスすることができ:InterfaceController1に私のような変数を作成します。

は現在、スタックオーバーフロー上のただ一つの答えがありますが、スウィフト1が出ていたときに作成されたと私は日付の回答に任意のを見つけることができません。

は、私は、彼らが推奨されていないことを認識していますと、グローバル変数を使用しないでしょう。

+0

スウィフト1とリンゴウォッチ:\ - 私はあなたが正しいとは思わない –

+0

あなたはどういう@ Mr.Xcoder –

答えて

0

グローバルまたはシングルトン(この場合は本質的にグローバル)を使用せずにこれを達成する最も良い方法は、デリゲートパターンを使用することです。 InterfaceController2では、InterfaceController1型のデリゲートを作成し、InterfaceController2が表示されたらそれを設定します。値が必要なときは、InterfaceController1Delegate.levelを呼び出して値にアクセスできます。

あなたはしかし、誤って問題について行くことがあります。あなたの名前と値のサウンドから、ビューコントローラのアプリケーションの保持状態値のようです。その場合、私はより多くのMVC設計に固執し、渡されるか、それらを必要とするさまざまなビューコントローラからアクセスできる状態クラスまたはクラスにそれらを保持します。

関連する問題