在mainviewcontroller中加载多个viewcontrollers

时间:2012-06-30 18:41:33

标签: iphone

有一个mainviewcontroller作为uiimageview和uitoolbar,当按钮在uitoolbar上按下时,它开始基于nstimer一个接一个地加载多个视图控制器。我想把这个mainviewcontroller作为基于nstimer一个接一个地加载多个视图控制器的容器,uitoolbar总是在下面显示。不希望在每个视图控制器中添加工具栏作为子视图。我怎么能这样做。

- (void)viewDidLoad{
// Displays UIImageView
UIImageView *myImage = [[UIImageView alloc]
                         initWithImage:[UIImage imageNamed:@"ka1_046.png"]];
myImage.frame = CGRectMake(0, 0, 320, 460);
[self.view addSubview:myImage]; 
// create the UIToolbar at the bottom of the view controller
toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 425, 320, 40)];
toolbar.barStyle = UIBarStyleBlackOpaque;
[self.view addSubview:toolbar];

//Add Play Button
self.playButton = [UIButton buttonWithType:UIButtonTypeCustom];
[self.playButton addTarget:self action:@selector(playpauseAction:) forControlEvents:UIControlEventTouchUpInside];
self.playButton.frame = CGRectMake(0, 0, 30, 30);
[self.playButton setImage:[UIImage imageNamed:@"Play Icon.png"] forState:UIControlStateNormal];
[self.playButton setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateSelected];
 UIBarButtonItem *play = [[UIBarButtonItem alloc] initWithCustomView:self.playButton];

-(void)playpauseAction:(id)sender {
if([audioPlayer isPlaying])
{
    [sender setImage:[UIImage imageNamed:@"Play Icon.png"] forState:UIControlStateSelected];
    [audioPlayer pause];
    [self pauseTimer];
    [self pauseLayer:self.view.layer];

}else{
    [sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
    [audioPlayer play];
    [self resumeTimer];
    [self resumeLayer:self.view.layer];
   if(isFirstTime == YES)
    {
        self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0
                                            target:self
                                            selector:@selector(displayviewsAction:)
                                             userInfo:nil
                                             repeats:NO];
        isFirstTime  = NO;
    }} }


  - (void)displayviewsAction:(id)sender{  
     First *first = [[First alloc] init];
     first.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:first.view];
     [self.view addSubview:toolbar];
     [first release];   
     self.timer = [NSTimer scheduledTimerWithTimeInterval:23 target:self selector:@selector(Second) userInfo:nil repeats:NO];     
     }

以相同的方式基于nstimer一个接一个地加载其他多个视图控制器。那么我怎么能把这个mainviewcontroller作为容器来基于nstimer一个接一个地加载这些多个视图控制器并且总是在下面有uitoolbar。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果您想留在主视图控制器中,那么根据定义,您无法推送任何其他视图控制器。你能做什么,只是像UIView一样创建所有其他东西,然后将它们作为子视图添加到你的主VC。这意味着您的所有代码都将位于相同的.m文件中,但这不应该是一个问题。