1

我有想要显示的 pageviewcontroller 并在这个项目中使用故事板和 segue

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];

然后它不显示使用卷曲效果转换的pageviewcontroller 仅显示导航栏和backbarbuttonitem。

当我替换这个语句时

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

有了这个声明

[self.view addSubview:page.view];

然后它显示 pageviewcontroller 但根本不翻页。

请帮忙。

非常感谢。

4

1 回答 1

1

我想我看到了你的问题。由于您在情节提要中设置了 segue,因此您不必调用 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];
    }
}

此外,如果故事板中没有内置推送转场,您应该能够使用当前代码进行一次修改:

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 回答