0

UIView.xibファイルがあります。これは、ストーリーボードのエントリポイントUIViewController1からサブビューとして開かれます。サブビューにはIBButtonがあり、押すとUIViewController2が開きます。これは万が一可能ですか?

4

2 に答える 2

0

最初に、最初のビュー コントローラーから 2 番目のビュー コントローラーへのセグエを作成します。私はそれに名前を付けるつもりですOpenViewController2。そのセグエをプログラムで呼び出すことができます。

UIView.h ファイルで、そのビューのデリゲートを定義するプロトコルを作成します。

何かView.h:

@protocol SomethingViewDelegate <NSObject> {
    - (void)importantThingHappened;
}

...

@interface SomethingView {
    id<SomethingViewDelegate> delegate;
}

@property (nonatomic, strong) id<SomethingViewDelegate> delegate;

何かView.m:

@implementation
@synthesize delegate;

...

// The IBAction for the button in your view
- (IBAction)buttonClicked:(id)sender {
    [delegate importantThingHappened];
}

ビューを作成する MyViewController.m:

// Create view
UIView *myView = ...

myView.delegate = self;

後で MyViewController で:

// Implement the protocol. This function will be called when the button action
// inside of the UIView you created is pressed
- (void)importantThingHappened {
    [self performSegueWithIdentifier:@"OpenViewController2" sender:self];
}
于 2012-07-11T04:38:54.397 に答える
0

最初に IBButton に一意のタグを付け、UIViewController の viewDidLoad で、

// add following line into viewDidLoad

[(UIButton*)[self.view viewWithTag:MY_UNIQUE_TAG_FOR_BUTTON] addTarget:self action:@selector(buttonPressed:) forControlEvent:UIControlEventTouchUpInside];

最後に、buttonPressed: を実装します。

-(void) buttonPressed:(UIButton*)aButton {
    // do what you want to do.
}
于 2012-07-11T05:55:42.733 に答える