-1

ストーリーボードに2つのViewControllerがあります。

最初のビューコントローラには、ボタンAがあり、アクションAがあります。最初のViewControllerでボタンAを押すと、2番目のViewControllerにAの画像が表示されます。

viewcontroller.hファイルでaction-Aを宣言し、viewcontroller.mファイルでactionAを実装します。次に、firstviewcontrollerのFirstResponderにaction-Aとbutton-Aを接続します。

このアプリをテストするとき、ボタン-Aをクリックしましたが、アクション-Aは開始されませんでした。

どこで間違えましたか?私はiOSを学び始めたばかりで、プロではありません。どうか、私が何をすべきか助けてください。

viewcontroller.hで

@interface ViewController : UIViewController
{
 IBOutlet UIPageControl *pagecontrol;
 IBOutlet UIImageView *imageview1;
 IBOutlet UIImageView *imageview2;

 UIImageView *tempimageview, *bgimageview;
}

@property (nonatomic,retain) UIPageControl *pagecontrol;
@property (nonatomic,retain) UIImageView *imageview1;
@property (nonatomic,retain) UIImageView *imageview2;

- (IBAction) ButtonA_Click:(UIButton *)sender;

viewcontroller.mで

@implementation ViewController

@synthesize imageview1;
@synthesize imageview2;
@synthesize pagecontrol;

- (IBAction) ButtonA_Click:(UIButton *)sender;
{
 [imageview1 setImage:[UIImage imageNamed:@"MyImage.jpg"]];
 tempimageview = imageview2;
 [imageview1 setHidden:NO];
 [imageview2 setHidden:YES];
}
4

1 に答える 1

0

私が理解していることから、ビューコントローラーによって制御される2つの個別のビューが必要であるということです。したがって、それぞれに2つのImageViewは必要ありませんが、1つだけが必要です。

ビューコントローラとも呼ばれる2つの個別のオブジェクトがあることに注意してください。あなたのコードはもっと見えます、あなたは両方のビューを扱う1つだけを持っていると期待しています。それはうまくいきません。

これを機能させるには、最初のViewControllerが2番目のViewControllerにどの画像を使用するかを指示する必要があります。これはどちらかによって動作します

  • 最初のVCから2番目のVCに送信される通知を使用します。およびの使用方法については、NSNotificationCenterを参照してください。addObserver...postNotification

  • または、ビューの作成中に設定する最初のvcに2番目のvcのプロパティを設定します。最終的には、両方のビューコントローラが相互に通信できるようにするための何らかの方法が必要になります。

また、アウトレットをプライベートと宣言しないでください。角かっこからそれらを削除し、次のように記述します。

@interface ViewController : UIViewController
{
    UIImageView *tempimageview, *bgimageview;
}

@property (nonatomic,retain) IBOutlet UIPageControl *pagecontrol;
@property (nonatomic,retain) IBOutlet UIImageView *imageview1;
@property (nonatomic,retain) IBOutlet UIImageView *imageview2;
于 2013-01-28T18:09:02.573 に答える