PrepareforSegue 不显示目标视图控制器

Posted

技术标签:

【中文标题】PrepareforSegue 不显示目标视图控制器【英文标题】:PrepareforSegue not displaying destinationviewcontroller 【发布时间】:2013-07-11 18:35:38 【问题描述】:

Segue destinationviewcontroller pdfviewcontroller 不显示 pageviewcontroller

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

if ([[segue identifier] isEqualToString:@"MYSegue"]) 

    // Get destination view
    PDFViewController *pdfviewController = [segue destinationViewController];
    NSString *path = [[NSBundle mainBundle] pathForResource:@"paper" ofType:@"pdf"];
    PageViewController *page = [[PageViewController alloc] initWithPDFAtPath:path];
    pdfviewController= page;



仅显示导航栏和后退按钮项

并显示从 pageviewcontroller strong 分配给 pdfviewcontroller strong 的语义问题不兼容的指针类型。

感谢您的帮助。

【问题讨论】:

Display pageviewcontroller in Segue destinationviewcontroller 的可能重复项 【参考方案1】:

这一行是错误的:

pdfviewController=页面;

正如编译器告诉你的那样,类型是PDFViewController *,你正在尝试分配PageViewController *

你的意思是这样的:

pdfviewController.page = page;

segue 应该这样做:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

    if ([[segue identifier] isEqualToString:@"MYSegue"]) 
        // Get destination view
        PDFViewController *pdfViewController = [segue destinationViewController];
        NSString *path = [[NSBundle mainBundle] pathForResource:@"paper" ofType:@"pdf"];

        pdfViewController.path = path;
    

为 pdf 视图控制器添加一些属性:

@property (copy, nonatomic) NSString *path;
@property (strong, nonatomic) PageViewController *page;

然后在pdf视图控制器中

- (void)viewDidLoad 
    [super viewDidLoad];

    PageViewController *page = [[PageViewController alloc] initWithPDFAtPath:self.path];
    page.view.frame = self.view.bounds;
    [self.view addSubview:page.view];
    [self addChildViewController:page];
    self.page = page;

【讨论】:

我想在 pdfviewcontroller 中显示 pageviewcontroller 好的,但它们是什么?他们是你的吗?你是从 github 得到的吗?你觉得他们在一起怎么样? 如果你看看我的这个问题***.com/questions/17599528/…你可能会理解我的问题。感谢您的时间和帮助。 您不应该再次转发相同的问题,而是编辑原始问题。 另一个问题没有说明类定义。您为什么要尝试使用 2 个视图控制器,它们之间的关系应该是什么(为什么不封装在 PDF 视图控制器中)?

以上是关于PrepareforSegue 不显示目标视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

使用导航控制器在“prepareForSegue”中设置数据

准备继续时在目标视图控制器中设置选择器

使用 prepareForSegue 在视图控制器之间传递数据

prepareForSegue 未在嵌入式 segue 中调用

如果我使用 prepareForSegue 传递数据,则无法嵌入导航控制器

prepareForSegue 目标控制器属性未设置