0

uiimageview および uitoolbar としての mainviewcontroller があり、uitoolbar でボタンが押されると、nstimer に基づいて複数の View Controller を次々にロードし始めます。このmainviewcontrollerを、nstimerとuitoolbarに基づいて、複数のView Controllerを次々にロードするためのコンテナとして作成したいと考えています。各View Controllerにサブビューとしてツールバーを追加したくありません。どうやってやるの。

- (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 に基づいて、他の複数の View Controller を次々とロードします。では、このmainviewcontrollerをコンテナとして作成して、nstimerに基づいてこれらの複数のView Controllerを次々にロードし、常に下にuitoolbarを配置するにはどうすればよいですか。

手伝ってくれてありがとう。

4

1 に答える 1

1

メインのView Controllerにとどまりたい場合は、定義により、他のView Controllerをプッシュすることはできません。できることは、これらの他のすべてのものを UIView として作成し、それらをサブビューとしてメイン VC に追加することです。これは、すべてのコードが同じ .m ファイルにあることを意味しますが、問題にはなりません。

于 2012-06-30T20:03:37.637 に答える