2012-02-10 3 views
0

Как я могу Анимировать переход контроллеров представления из одного в другое без стека контроллера навигации. View Controller управляется только UIToolbar, поскольку он имеет только кнопки воспроизведения, перемотки, остановки, информации и опций. Мой код приведен ниже прямо сейчас, у меня есть 23 контроллера вида, которые загружаются один за другим, но во время перехода UIToolbar также переворачивается вместе с контроллерами представлений, что неверно.Анимация перехода контроллеров просмотра от одного к другому без стека контроллера навигации

-(void)playAction:(id)sender 
{ 
[audioPlayer play]; 
[self performSelector:@selector(displayviewsAction:) withObject:nil afterDelay:11.0]; 
} 

- (void)displayviewsAction:(id)sender 
{ 
First *firstController = [[First alloc] init]; 
firstController.view.frame = CGRectMake(0, 0, 320, 480); 
CATransition *transitionAnimation = [CATransition animation]; 
[transitionAnimation setDuration:1]; 
[transitionAnimation setType:kCATransitionFade]; 
[transitionAnimation setTimingFunction:[CAMediaTimingFunction  functionWithName:kCAMediaTimingFunctionEaseIn]]; 
[self.view.layer addAnimation:transitionAnimation forKey:kCATransitionFade]; 
[self.view addSubview:firstController.view]; 
[self.view addSubview:toolbar]; 
[firstController release]; 
self.timer = [NSTimer scheduledTimerWithTimeInterval:23 target:self selector:@selector(Second) userInfo:nil repeats:NO];  
} 

-(void)Second 
{ 
Second *secondController = [[Second alloc] init]; 
secondController.view.frame = CGRectMake(0, 0, 320, 480); 
CATransition *transitionAnimation = [CATransition animation]; 
[transitionAnimation setDuration:1]; 
[transitionAnimation setType:kCATransitionFade]; 
[transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; 
[self.view.layer addAnimation:transitionAnimation forKey:kCATransitionFade]; 
[self.view addSubview:secondController.view]; 
[self.view addSubview:toolbar]; 
[secondController release]; 
self.timer = [NSTimer scheduledTimerWithTimeInterval:27 target:self selector:@selector(Third) userInfo:nil repeats:NO]; 
} 

-(void)Third { 
Third *thirdController = [[Third alloc] init]; 
thirdController.view.frame = CGRectMake(0, 0, 320, 480); 
CATransition *transitionAnimation = [CATransition animation]; 
[transitionAnimation setDuration:1]; 
[transitionAnimation setType:kCATransitionFade]; 
[transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; 
[self.view.layer addAnimation:transitionAnimation forKey:kCATransitionFade]; 
[self.view addSubview:thirdController.view]; 
[self.view addSubview:toolbar]; 
[thirdController release]; 
self.timer = [NSTimer scheduledTimerWithTimeInterval:23 target:self selector:@selector(Fourth) userInfo:nil repeats:NO]; 
} 

-(void)Fourth { 
Fourth *fourthController = [[Fourth alloc] init]; 
fourthController.view.frame = CGRectMake(0, 0, 320, 480); 
CATransition *transitionAnimation = [CATransition animation]; 
[transitionAnimation setDuration:1]; 
[transitionAnimation setType:kCATransitionReveal]; 
[transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; 
[self.view.layer addAnimation:transitionAnimation forKey:kCATransitionReveal]; 
[self.view addSubview:fourthController.view]; 
[self.view addSubview:toolbar]; 
[fourthController release]; 
self.timer = [NSTimer scheduledTimerWithTimeInterval:25 target:self selector:@selector(Fifth) userInfo:nil repeats:NO]; 
} 

Я все еще ищу решение. Полюбуется помощь.

+0

Не совсем уверен, что вы просите. UIViews добавляются как подпункты, а не UIViewControllers. В приведенном выше примере вы автоматически проверяете viewController, но добавляете его представление как подвью. Контроллер нового представления теперь исчезнет и, вероятно, вызовет ошибки. Что именно ты пытаешься сделать? – picciano

+0

На mainviewcontroller есть кнопка UIToolbar и Play, когда эта кнопка нажата, она воспроизводит аудиофайл и отображает несколько uiviews один за другим. Пока я могу добиться этого, эта кнопка воспроизводит аудиофайл и отображает представление, теперь я хочу добавить больше просмотров для отображения один за другим – user1120133

ответ

1

просто толкать их все

NSMutableArray *controllers = [NSMutableArray arrayWithArray:[self.navigationController viewControllers]]; 
[controllers addObject:vc1]; 
[controllers addObject:vc2]; 
[controllers addObject:vc3]; 
[controllers addObject:vc4]; 
[self.navigationController setViewControllers:controllers animated:YES];