0

私はiPad用の電子ブックに取り組んでいます。本のすべてのページは、アプリの StoryBoard の View Controller であり、Interface Builder でページ番号が識別子として設定されています。私は、ナビゲーションを実装するクラスに取り組んでいます。その役割は、View Controller を表示および破棄することです。これは、提示されたビュー コントローラーに一連のボタンをオーバーレイし、それらの IBActions を処理することによって行われます。

私の問題は、一部のビュー コントローラー (偶数ページ) が表示されないことです。誰でも理由がわかりますか?

@implementation Navigator

UIViewController *currentPageVC;
UIViewController *nextPageVC;

int currentPage = 0;

-(void)viewDidLoad{
    [self getLandingPage];
}

-(void)getLandingPage{

    currentPageVC = [self.storyboard instantiateViewControllerWithIdentifier:@"Landing"];
    currentPage = 0;
    NSLog(@"Trying to present landing page");
}

-(IBAction)goToNextPage{

    [currentPageVC dismissModalViewControllerAnimated:YES];
    currentPage++;    

    nextPageVC = [self.storyboard instantiateViewControllerWithIdentifier:[NSString stringWithFormat:@"%d", currentPage ]];
    [self presentModalViewController:nextPageVC animated:YES];

    [nextPageVC.view addSubview:self.view];

    currentPageVC = nextPageVC;

    NSLog(@"Current Page is %d", currentPage);
}
4

1 に答える 1

0

わかりました、修正しました。これは、への呼び出しがpresentModalViewController:直後に発生したために発生しましたdismissModalViewControllerAnimated:

これを修正するには、新しいバージョンを使用する必要があります。dismissViewControllerAnimated:completion:

-(IBAction)goToNextPage{    
    [self dismissViewControllerAnimated:YES completion:^{
        NSLog(@"dismissed!");
        currentPage++;
        UIViewController *nextPageVC = [self.storyboard instantiateViewControllerWithIdentifier:[NSString stringWithFormat:@"%d", currentPage ]];
        [self presentModalViewController:nextPageVC animated:YES];
        [nextPageVC.view addSubview:self.view];

        NSLog(@"Current Page is %d", currentPage);

    }];

}
于 2012-06-26T15:44:00.463 に答える