1

ビューコントローラの1つに複数のUISwitchがあり、別のビューコントローラがIf/andステートメントのUISwitchの値にアクセスできるようにしたい。Objective-cでこれを行うにはどうすればよいですか?

4

2 に答える 2

1

これは、View Controller 間に不要な依存関係を作成するため、悪い考えです。

それでもやりたい場合は、スイッチを使用して最初のView Controllerの参照を2番目のView Controllerに渡すだけです。次に、2 番目のビュー コントローラーで、対応する UISwitch のonプロパティにアクセスします。

ただし、その方法に進む代わりに、各 UISwitch のブール状態を保持するカスタム クラスを作成することを強くお勧めします。このクラスのインスタンスは、シングルトンであるか、アプリケーション デリゲートに含まれている可能性があります。両方のアプローチでそれを行う方法については、この回答を参照してください。

UISwitch はデータ モデル内のプロパティを表すための手段にすぎないため、カスタム クラスの方が適しています。また、明日 UISwitch を別の派手なコントロールに置き換えたとしても、2 番目のビュー コントローラーは引き続き動作するはずです。どちらのビュー コントローラーにも、このカスタム クラスのオブジェクトへの参照があります。変更があるたびに、最初のコントローラーがこのオブジェクトを更新します。

クラス インターフェイスは次のようになります。

@interface DataValues : NSObject {
    BOOL first;
    BOOL second;
    BOOL third;
}

@property BOOL first;
@property BOOL second;
@property BOOL third;
于 2010-01-17T01:24:53.787 に答える
0

あなたはおそらくそれをしたくないでしょう。2番目のViewControllerに、最初にスローされたスイッチに基づいて異なる動作を持たせたい場合は、スイッチをユーザーデフォルトにバインドする必要があります。これは、アプリのどこからでも読み取ることができます。

http://icodeblog.com/2008/10/03/iphone-programming-tutorial-savingretrieveing-data-using-nsuserdefaults/

于 2010-01-17T00:59:13.347 に答える