2

私はこのような3つのボタンを持っていますそれぞれが異なるに対応していますUIViewController

ここに画像の説明を入力してください

たとえば、ボタン1を押します。スタートボタンに、表示される番号に対応するビューコントローラが渡されます。

このボタンでそれを渡すことができる必要があります:

ここに画像の説明を入力してください

出来ますか?

4

2 に答える 2

1

はい、ボタンタップで表示されるViewControllerのプロパティとしてUIButtonを作成するだけです。次に、ボタンタップのハンドラーで、新しいコントローラーのbuttonプロパティを使用して、新しいコントローラーを表示する前にボタンを割り当てます。

サンプルコード:

//here's your method invoked when pressing the button 1
- (IBAction) pressedButtonOne:(id) sender {
    NewViewController *newVc = [[NewViewController alloc] initWithNibName:@"NewViewController" bundle:nil];
    newVc.startButton = self.startButton;
}

ボタン1を押したときに作成されるコントローラーのコードは次のとおりです。

NewViewController.h

#import <UIKit/UIKit.h>
@interface NewViewController : UIViewController
@property (nonatomic, retain) UIButton *startButton;

//NewViewController.m
- (void) viewDidLoad {
    //use self.startButton here, for whatever you need
}
于 2012-05-30T01:55:04.400 に答える
1

質問を正しく理解している場合:ボタン1について話しましょう(他のボタンやVCに一般化できます)。関連するviewControllerがbutton1ViewControllerと呼ばれているとします。

button1ViewControllerで、buttonというプロパティを宣言します(@property(strong、non atom)UIButton * button-合成も行います)。

IBActionメソッドで。

-(IBAction) button1Tapped:(id)sender {

button1ViewController.button = sender;

[self presentViewController:button1ViewController;

}

編集:私は今質問を受けると思います。

mainViewコントローラーで、インスタンス変数UIViewController*pushedControllerを宣言します。また、インスタンスを宣言しますButton1ViewController * button1ViewController; 、Button2ViewController * button2ViewController、Button3ViewController*button3ViewController。

今:

-(IBAction) button1Pressed:(id)sender {
     if (button1ViewController==nil) {
button1ViewController = [Button1ViewController alloc] init];
}

pushedController = button1ViewController;

}

-(IBAction) button2Pressed:(id)sender {
     if (button2ViewController==nil) {
button2ViewController = [Button2ViewController alloc] init];
}

pushedController = button2ViewController;

}


//same thing for button 3 pressed with button 3 controller


-(IBAction) startButtonPressed:(id) sender {

if (pushedViewController!=nil)
[self presentViewController:pushedViewController animated:YES completion:NULL];

}

これはうまくいくはずだと思いますが、私は自分でコードを試していません。

于 2012-05-30T03:11:57.403 に答える