1

たとえば、vc1 という名前のビュー コントローラーがあり、これは property1 という名前の合成プロパティであり、別のビュー コントローラー (vc2) からアクセスして、vc2 から変更したいとします。

プロパティを変更および取得するために @syntisize によって作成されたメソッドはインスタンス メソッドであるため、別のビュー コントローラーからそれらにアクセスするにはどうすればよいですか (ビュー コントローラーはアプリにインスタンスを持っていますか? もしそうなら、それらは何ですか?)

明確にするために、私はストーリーボードを使用しているため、ビューコントローラーを実際にインスタンス化することはありません...

4

3 に答える 3

0

VC1.m:

-(void) yourMethod {
     ...
}

VC2.m

YOURViewController * vc2 = [[YOURViewController alloc]init];
[vc yourMethod];
[vc release];

YOURViewController必ず他のビューの.mファイルにインポートしてください。そのようなものはうまくいくはずです。

または、問題がある場合は、次のチュートリアルを試してください。

2 つのビュー コントローラー間でデータを渡す方法に関するチュートリアル

お役に立てれば :)

于 2012-07-07T15:41:44.503 に答える
0

あなたが説明した方法でそれを行うことができますが、一般的な手法 (VC1 に VC2 へのセグエがあると仮定) は少し異なり、VC2 には によって設定されるプロパティがありますprepareForSegue。ビュー コントローラー プログラミング ガイドの「セグエがトリガーされたときの宛先コントローラーの構成」を参照してください。

于 2012-07-07T15:45:28.037 に答える
0

ストーリーボード ビューをビュー コントローラーとリンクする必要があるため、vc1 のビューはクラス vc1 などを残りの部分に使用します (異なるビューをコーディングするときに重要なので、これを行っていると思います)。

次に、プロパティを呼び出す場所を指定するだけでよいので、viewDidLoadメソッドを次のようにビュー コントローラーを宣言します。

- (void) viewDidLoad {
vc1 *viewController;
// Now you change the variable I'll presume its a UILabel so I'll change its text
[viewController.property1 setText:@"I changed a different views UILabel"];
}

これが機能するかどうか教えてください...以前は私のために働いていたので、うまくいくはずです

于 2012-07-07T15:49:25.400 に答える