UIView.xibファイルがあります。これは、ストーリーボードのエントリポイントUIViewController1からサブビューとして開かれます。サブビューにはIBButtonがあり、押すとUIViewController2が開きます。これは万が一可能ですか?
質問する
294 次
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 に答える