これが私の状況です。私はviewControllerを持っています。上部の3つのボタンと、ボタンの下にコンテナビューがあります。ボタンを押すと、コンテナの表示が変わります。
これは私がストーリーボードで行ったことです。
- ビューコントローラをストーリーボードにドラッグしました。3つのボタンとcontainerviewを追加しました。
このビューコントローラはクラス外のviewControllerです - 2番目のビューコントローラをそこにドラッグしました。そして、containerViewからこのViewControllerにドラッグして制御します。埋め込みセグエを選択しました。
今コードで私はコントローラーviewControllerのために次のことをします
-(IBAction)chooseFirstController:(id)sender {
[self.childViewControllers.lastObject switchToFirst];
}
-(IBAction)chooseSecondController:(id)sender {
[self.childViewControllers.lastObject switchToSecond];
}
-(IBAction)chooseThirdController:(id)sender {
[self.childViewControllers.lastObject switchToThird];
}
そして、containerController.hに対して、次のことを行います。
@interface ContainerViewController : ViewController
@property (nonatomic,strong) FirstController *cont1;
@property (nonatomic,strong) SecondController *cont2;
@property (nonatomic,strong) ThirdController *cont3;
@property (nonatomic,strong) ContainerViewController *currentController;
そして私のcontainer.mで
- (void)viewDidLoad
{
[super viewDidLoad];
self.cont1 = [[FirstController alloc]initWithNibName:@"FirstController" bundle:nil];
self.cont2 = [[SecondController alloc]initWithNibName:@"SecondController" bundle:nil];
self.cont3 = [[ThirdController alloc]initWithNibName:@"ThirdViewController" bundle:nil];
[self addChildViewController:self.cont1];
self.currentController = self.cont1;
[self.view addSubview:self.cont1.view];
}
-(void)switchToFirst {
if (self.currentController != self.cont1) {
[self addChildViewController:self.cont1];
[self moveToNewController:self.cont1];
}
}
-(void)switchToSecond {
if (self.currentController != self.cont2) {
[self addChildViewController:self.cont2];
[self moveToNewController:self.cont2];
}
}
-(void)switchToThird {
if (self.currentController != self.cont3) {
[self addChildViewController:self.cont3];
[self moveToNewController:self.cont3];
}
}
-(void)moveToNewController:(id) newController {
[self.currentController willMoveToParentViewController:nil];
[self transitionFromViewController:self.currentController toViewController:newController duration:.6 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{}
completion:^(BOOL finished) {
[self.currentController removeFromParentViewController];
[newController didMoveToParentViewController:self];
self.currentController = newController;
}];
}
しかし、IBActionsで「セレクターswitchtoFirstの既知のインスタンスメソッドがありません」というエラーが発生し続けます。
誰か助けてもらえますか?
前もって感謝します。