-1

MPMoviePlayerController を 2 つにしたい。ボタンがタップされた後、アクションメソッドにこれを追加することから始めました:

MPMoviePlayerController *movieController= [[MPMoviePlayerController alloc] initWithContentURL: yURL];
[movieController prepareToPlay];
[movieController.view setFrame: self.view.bounds];  
[self.view addSubview: movieController.view];
[movieController play];

これはうまくいきません!同じビューに別のプレーヤーを追加できるように、このアプローチに従っていました。しかし、これを.hに追加しようとしたとき

@property (nonatomic, strong) MPMoviePlayerControllers *moviePlayer;

そしてこれを.mに

self.movieController= [[MPMoviePlayerController alloc] initWithContentURL: yURL
[self.movieController.view setFrame: self.view.bounds]; 
[self.view addSubview: self.movieController.view];
[self.movieController play];

それは完全に機能します!誰か私にそれを説明できますか?各セルにプレーヤーが含まれるテーブルにデータを入力する場合のように、ビューに複数のビデオプレーヤーを追加するにはどうすればよいですか?

4

1 に答える 1

1

最初の例では、メソッド内で movieController を宣言しています。これは、変数のスコープがメソッドであることを意味し、メソッドが終了すると、変数の割り当てが解除されます。追加したサブビューは何も指していないため、ムービー プレーヤーは表示されません。

変数をプロパティとして宣言すると、オブジェクトの存続期間中存在します。オブジェクトがまだ存在する限り、その値にアクセスして設定できます。プロパティに値を割り当てると、その値はメソッドのリターン後に保存されるため、ビューが表示されます。

于 2013-09-02T01:58:05.100 に答える