私は、ユーザー入力に基づいて修正されたブール値の配列(soundArray)を持っています。したがって、ユーザーが対話しているメインのUIViewが所有します。一方、別の別のコントローラ(GestureController)では、このsoundArrayへのアクセスが必要なので、メソッド呼び出しのパラメータとして渡すことができます。ViewControllerとビューの間のハンドルを渡す
ViewControllerは所有していないUIViewのプロパティを掘り出すべきではないと確信しています。したがって、私は所有しているViewController(MusicGridController)のsoundArrayへの別のポインタを作成しました。主UIView(MusicGridView)。 GestureControllerで
、私は次のコードを持っている:
// instantiate the sound thread
NSArray *soundArrayPointers = [NSArray arrayWithObjects:self.musicGridViewController.soundArray, nil];
[NSThread detachNewThreadSelector:@selector(metronome:) toTarget:[MusicThread class] withObject:soundArrayPointers];
(最終的に私はその配列内のより多くのsoundArraysがあるでしょう)。
さて、MusicGridControllerで、私はので、私はこれをしなかった... UIViewのMusicGridViewにSoundArrayへのポインタを設定する必要があります:私はself.soundArray = self.view.soundArrayを試してみました
- (void)viewDidLoad {
[super viewDidLoad];
self.view.frame = CGRectMake(20, 0, 480, 480);
MusicGridView *tempview = self.view; // this line gives me a warning that I am initializing from a distinct Objective-C type, which I don't understand.
self.soundArray = tempview.soundArray;
}
が、それは間違いを投げた、なぜ私は理解していない。だから私の質問です:これは正しい実装ですか? 1つのviewControllerから特定のUIViewのプロパティを取得するにはどうすればよいですか?