将视图控制器从根推送到详细视图控制器 (SplitView)

Posted

技术标签:

【中文标题】将视图控制器从根推送到详细视图控制器 (SplitView)【英文标题】:Push a view controller from root to detail view controller (SplitView) 【发布时间】:2011-08-31 13:59:19 【问题描述】:

我的 splitview 包含 UITable (Masterview) 和 tabbar,每个 tabbaritem (Detailview) 上有导航控制器。我想要的是当我在 Masterview 中单击 tablerow 时,它将在详细视图控制器中推送一个新视图。

我编写了这个迭代来获得正确的 UINavigationController 并推送新视图。不幸的是,这不起作用。它不显示新视图,有时它只是崩溃了。

    // code from MasterView
    PDFViewer *pdfViewerController = [[PDFViewer alloc] initWithNibName:@"PDFViewer" bundle:nil];
    pdfViewerController.pdfData = [[NSData alloc] initWithData: pdfContent];
    pdfViewerController.docInfo = curDocInfo;

    // gets tabbar controllers
    XtendisAppDelegate *appDelegate = (XtendisAppDelegate *)[[UIApplication sharedApplication] delegate];
    NSMutableArray *controllers = [NSMutableArray arrayWithArray: appDelegate.tabBarController.viewControllers];

    for (UIViewController *curController in controllers) 
        if ([curController isKindOfClass:[UINavigationController class]]) 
            [curController.navigationController pushViewController:pdfViewerController animated:YES];
            break;
        
    

    [pdfViewerController release];

知道我做错了什么吗? 任何帮助表示赞赏。提前致谢。

干杯, 油井油

【问题讨论】:

可能是UINavigationController,你会发现它不在视图控制器堆栈的顶部? 【参考方案1】:

尝试替换

[curController.navigationController pushViewController:pdfViewerController animated:YES];

用这个:

[curController pushViewController:pdfViewerController animated:YES];

因为curController 已经是UINavigationController class 的对象

【讨论】:

以上是关于将视图控制器从根推送到详细视图控制器 (SplitView)的主要内容,如果未能解决你的问题,请参考以下文章

将多个详细视图与拆分视图控制器一起使用

如何将segue从表格视图中的单元格单击推送到另一个视图控制器[重复]

Iphone UIView 父方法调用

将谷歌广告横幅视图设置为 tabbr 控制器,但是当我推送到详细视图时,仍然显示广告

如何将字符串从根视图控制器传递到另一个视图?

使用 Xcode Storyboard 从表格视图单元推送到详细视图