使用storyboard segue显示Pageviewcontroller

时间:2013-07-10 21:55:28

标签: iphone objective-c ios6

我有一个pageviewcontroller,我想在这个项目中使用storyboard和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使用curl效果转换来翻页,只显示导航栏和backbarbuttonitem。

当我替换这个陈述时

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

使用此声明

[self.view addSubview:page.view];

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

请帮忙。

非常感谢。

1 个答案:

答案 0 :(得分: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];
    }
}

此外,如果推送segue没有内置到故事板中,您应该可以使用当前代码进行一次修改:

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

希望这有帮助。