1

表示したいpageviewcontrollerがあり、このプロジェクトではストーリーボードとセグエを使用しています

NSString *path = [[NSBundle mainBundle] pathForResource:@"Paper" ofType:@"pdf"];
PageViewController *page = [[PageViewController alloc] initWithPDFAtPath:path];
//[self presentViewController:page animated:NO completion:NULL];

このステートメントを使用する場合

//[self presentViewController:page animated:NO completion:NULL];

次に、ナビゲーションバーとbackbarbuttonitemを表示しません

そして、このステートメントを削除すると

 //[self presentViewController:page animated:NO completion:NULL];

次に、ページをめくるためのcurl効果トランジションを使用したpageviewcontrollerを表示せず、ナビゲーションバーとbackbarbuttonアイテムを表示するだけです。

そして、このステートメントを置き換えると

//[self presentViewController:page animated:NO completion:NULL];

この声明で

[self.view addSubview:page.view];

次に、pageviewcontroller を表示しますが、ページをめくることはまったくありません。

助けてください。

どうもありがとう。

4

1 に答える 1

1

私はあなたの問題を見ていると思います。ストーリーボードにセグエが設定されているので、presentViewController を呼び出す必要はありません。prepareForSegue 関数で実際にやりたいことは次のとおりです。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue destinationViewController] isKindOfClass:[PageViewController class]]) {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"Paper" ofType:@"pdf"];
        PageViewController *page = (PageViewController *)[segue destinationViewController];
        [page initWithPDFAtPath:path];
    }
}

また、プッシュ セグエがストーリーボードに組み込まれていない場合は、現在のコードを 1 つの変更で使用できるはずです。

NSString *path = [[NSBundle mainBundle] pathForResource:@"Paper" ofType:@"pdf"];
PageViewController *page = [[PageViewController alloc] initWithPDFAtPath:path];
[[self navigationController] pushViewController:page animated:YES];

お役に立てれば。

于 2013-07-10T23:33:10.970 に答える