Это моя ситуация. У меня есть вьюконтроллер. С тремя верхними кнопками и под кнопками контейнера. Когда вы нажимаете кнопку, представление контейнера должно измениться.
Это то, что я сделал в раскадровке.
- Перетащил контроллер представления в мою раскадровку. добавил в него 3 кнопки и контейнерный вид.
Этот контроллер представления не относится к классу viewController. - Перетащил в него второй вьюконтроллер. И контролируемое перетаскивается из containerView в этот контроллер представления. и выбранный переход для встраивания.
Теперь в коде я делаю следующее для контроллера 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;
И в моем контейнере.м
- (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;
}];
}
Но я продолжаю получать сообщение об ошибке «Нет известного метода экземпляра для селектора switchtoFirst» в моих IBActions.
Кто-нибудь может мне помочь?
Заранее спасибо.