2012-01-06 18 views
0

現在、私は写真デコレーションアプリを製作中です。 * holderViewは、ユーザーが選択したステッカーです。写真ライブラリから写真を読み込んだり写真を撮ってからこのページに戻そうとするたびに、以前に写真を撮る前に選択したステッカーである* holderViewがプログラムで追加されました。私はそれが欲しいものではありません。重複した説明がプログラムで追加されました

これを起こさないためのコードはどうすればいいですか? ありがとうございました。

- (void)viewWillAppear:(BOOL)animated { 

UIView *holderView = [[UIView alloc] initWithFrame:CGRectMake(0, 50, _imagePicker.selectedImage.size.width, _imagePicker.selectedImage.size.height)]; 
UIImageView *imageView = [[UIImageView alloc] initWithFrame:[holderView frame]]; 
[imageView setImage:_imagePicker.selectedImage]; 
[holderView addSubview:imageView]; 
... 
} 
+0

私が理解しているように、なぜユーザーがこのビューを選択した後にホルダービューを取得してから、この選択したホルダービューにイメージビューを追加するのですか? – huubby

+0

@huubby申し訳ありませんが、あなたは何を意味するかをさらに説明できますか?あなたは(あなたのコードの上映など、プログラムで追加holderviewに画像ビューを追加することによって)画像ビューを表示する必要がある場合おかげ – zeropt7

+0

は私が意味する、多分あなたは、その後、「写真を撮る前に、あなたが以前に選択した」ことをholderViewを保つことができますあなたが保持していた以前のホルダービューにイメージビューを追加するだけで – huubby

答えて

2

あなたの問題は、viewDidLoadの代わりにviewWillAppearメソッドを使用しているようです。これは複数の "imageViews"を引き起こすでしょう。なぜなら、あなたが隠して表示されるviewControllerを表示するたびに新しいものを追加するからです。あなたがしたいのは、imageViewの作成を(実際には1になると思われる場合) viewDidLoadメソッドを使用して、そのimageViewをクラス全体にアクセスできるようにしてから、viewWillApearで単にimageView内の画像を新しく選択したものに変更します。

関連する問題