0

ボタンの選択に依存する画像を渡したいと思っています。FirstController に Button1、Button2、Button3 があります。

Button1 を押すと、Photo.png という名前の画像が SecondController に表示され、Imageview に既にビューに挿入されます。ボタン 2 を押すと、同じ Imageview に photo2.png という名前の画像が表示されます。やりたいことをどうすればいいのかわからない。画像の受け渡しをこのコードに挿入したいと思います:

- (IBAction)Button1:(id)sender {
    SecondController *dvController = [[SecondController alloc] 
initWithNibName:@"SecondController" bundle:[NSBundle mainBundle]];
    dvController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:dvController animated:YES];
    [dvController release];
    dvController = nil;
}
4

3 に答える 3

0

1 つの方法は、画像名の配列を取得し、ボタンのタグをインデックスとして使用して、配列から画像名を取得することです。

まず、1 つのボタンとそれにリンクされた 1 つの IBAction を用意します。次に、ボタンをコピーして貼り付けます。これにより、多数のボタンが提供されますが、コードは 1 つです。ボタンごとに異なるタグ プロパティが設定され、コードは [sender tag] を配列のインデックスとして使用します。

dvController には、表示される前に、この配列から設定される UIImage プロパティがあります。dvController の viewWillAppear では、UIImageView が渡された UIImage に設定されます。

于 2012-09-23T13:55:28.460 に答える
0

トム・ジョンさん、できることは、SecondController.h で文字列を宣言して合成することです。そのため、最初のボタンが押されたときに、2 番目のビュー コントローラに設定したい画像の名前で文字列の値を設定できます。としてのメソッドの画像ビュー

 - (IBAction)Button1:(id)sender {
SecondController *dvController = [[SecondController alloc] 

initWithNibName:@"SecondController" bundle:[NSBundle mainBundle]]; dvController.imageName=@"photo", // imageName は、2 番目のビュー コントローラーで宣言する文字列です dvController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentModalViewController:dvController アニメーション:YES]; [dvController リリース]; dvController = なし; }

2番目のView Controllerのビューでロードした場合、これを行うことができます

imageView.image=[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:imageName ofType:@"png"]];//  imageview is the name of your imageview outlet .

同様に、2 番目のボタンについては、 を設定できますdvController.imageName=@"photo2"// put the name without png。お役に立てれば。

于 2012-09-24T09:29:05.477 に答える
0

SecondController送信者から次のように渡すことができるpropertylikeが必要ですUIImage* previousViewImagedvController.previousViewImage= [(UIButton*)sender imageForState:UIControlStateNormal].

于 2012-09-23T13:51:14.673 に答える