1

私の仕事は、FirstViewController のボタンをクリックして、SecondViewController の UIImageView に背景画像を設定することです。

FirstViewController.h :

 #import <UIKit/UIKit.h>
 #import "SecondViewController.h"

 @class SecondViewController;

 @interface ViewController : UIViewController
 {
    SecondViewController *secondViewData;
 }

 // pointer to second view 
 @property (nonatomic, strong) SecondViewController *secondViewData;

 // buttons
 - (IBAction)changeBack:(id)sender;

 @end

FirstViewController.m のボタン メソッド:

- (IBAction)changeBack:(id)sender {
    SecondViewController *svc = [[SecondViewController alloc] init];

    self.secondViewData = svc;

    svc.back = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1.png"]];
    svc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

    [self presentViewController:svc animated:YES completion:nil];
}

SecondViewController.h :

 #import <UIKit/UIKit.h>
 #import "FirstViewController.h"

 @interface SecondViewController : UIViewController

 @property (strong, nonatomic) IBOutlet UIImageView *back;

 @end

back - SecondViewController の IBOutlet UIImageView です。また、FirstViewController.h を SecondViewController.m にインポートしました。SecondViewController に文字列を渡そうとしましたが、SecondViewController の -ViewDidLoad に正常に記録されましたが、UIImageView を設定できません。

4

4 に答える 4

2

まず、ViewControllersのリソース管理をお読みください

問題は、最初にプロパティを介してUIImageViewを設定し、次にモーダルコントローラーにビューをロードするときにxibからそのセットを設定することだと思いました。

于 2012-11-12T17:20:14.563 に答える
1

あなたはこのようなことをすることができます。secondviewcontroller.hにUIImageViewのアウトレットを設定できます。

        IBOutlet UIImageView *imgView;

また、これをプロパティして合成します

       @property(nonatomic, retain)  IBOutlet UIImageView *imgView;  

FirstViewController.xibのsecondViewControllerのアウトレットを接続します

firstviewcontrollem.mで、secondViewControllerUIImageViewで画像を設定する場所にこれを実装します

    self.secondViewData.imgView.image = [UIImage imageNamed:@"1.png"];
于 2012-11-12T17:19:10.183 に答える
1

U は、2 番目のビュー コントローラーで別のイメージ ビューを取得する必要があります。

enter code here

//secondviewcontroller.h で

@property(nonatomic,strong)IBOutlet UIImageView *bgView;

@property(nonatomic,strong)IBOutlet UIImageView *imgView;

//secondviewcontroller.m で

//viewDidLoad 時

self.bgView.image=self.imgView.image;

//最初はviewcontroller.m

// ボタンのアクションは次のようにする必要があります

-(IBAction)buttonPressed:(id)送信者 {

SecondViewController *secondVC=[[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];

secondVC.imgView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"hue.png"]];

[self presentModalViewController:secondVC  animated:YES];

}

これを試して。

于 2012-11-14T14:29:42.190 に答える
1

この行が問題です:

svc.back = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1.png"]];

IB に接続されているイメージ ビューではなく、新しく割り当てられたイメージ ビューに戻ります。その行を次のように変更するだけです。

svc.back.image = [UIImage imageNamed:@"1.png"]];
于 2012-11-12T17:29:21.547 に答える