2012-02-10 19 views
0

ナビゲーションコントローラスタックなしでビューコントローラの切り替えをアニメーション化する方法を教えてください。 View Controllerは、再生、巻き戻し、停止、情報、およびオプションボタンしかないため、UIToolbarによってのみ管理されます。私のコードは、現在、私はもう1つを読み込んでいますが、遷移中にUIToolbarが間違っているビューコントローラと一緒に反転している23のビューコントローラです。ナビゲーションコントローラスタックなしでビューコントローラの切り替えをアニメーション化

-(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

を押してください。 UIViewはサブビューとして追加され、UIViewControllerでは追加されません。上の例では、viewControllerを自動解放しますが、そのビューをサブビューとして追加します。この新しいビューのコントローラーがなくなり、エラーが発生する可能性があります。あなたは正確に何をしようとしていますか? – picciano

+0

mainviewcontrollerには、UIToolbarとPlayボタンがあります。そのボタンを押すと、オーディオファイルが再生され、複数のuiviewが順番に表示されます。これまでのところ、私はこれを達成することができ、オーディオファイルを再生し、ビューを表示するようになりました。 – 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]; 
関連する問題