ios - UIViewController 在另一个 UIViewController 中,这可能吗?

标签 ios ipad uiview uiviewcontroller

我正在制作一个报亭应用,我需要在一个 View 中显示多个组件。我有一个显示和管理 pdf 的 UIViewController(缩放、滚动等...),但我不希望它全屏显示,而是希望它像一个 UIView 在另一个 UIViewController 中,顶部有一个菜单,底部有页码和其他工具。两者都是 UIViewController 的子类...我已经让两者分开工作了。我只想要另一个里面的 pdf 查看器。可能吗?这是我想要的一些代码(假设在 viewDidLoad 中)...但显然不起作用。任何帮助表示赞赏。它还必须兼容 IOS 5.1.1 及更高版本

    NSString *path = [[NSBundle mainBundle] pathForResource:@"myPdf" ofType:@"pdf"];
    PDFViewController *page = [[PDFViewController alloc] initWithPDFAtPath:path];
    //pdfView is a UIView of size 600x600 right in the middle
    [self setPdfView:[page view]]; //this doest work... but it's basically what I want instead of presenting a viewController
    //[self presentViewController:page animated:YES completion:NULL];

我也知道这一点,但我不明白......如果这是我想要一些指导的方式:

addChildViewController:
willMoveToParentViewController:
didMoveToParentViewController:

最佳答案

从 iOS 5 开始,您可以执行 View Controller Containment,它允许您将 subview Controller 添加到父 View Controller 中。 subview Controller 可以像往常一样管理所有逻辑,但子 Controller 的 View 可以匹配您喜欢的任何框架/位置。

添加你可以做的 Controller

   [self addChildViewController:childViewController];             
   childViewController.view.frame = [self frameForChildController];
   [self.view addSubview:childViewController.view];
   [childViewController didMoveToParentViewController:self];

您可以在 View Controller Documentation 中了解更多信息

关于ios - UIViewController 在另一个 UIViewController 中,这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21616941/

相关文章:

ios - 在 iOS 上通过本地 HTTP 服务器进行 HLS 播放

iphone - UIScrollView 重置 contentOffset

ipad - 在3.2 iPad上“无法及时恢复”?

iphone - 2 个 UIAlertView 一前一后

iOS:UIView 原点在 iOS 9 上没有改变

ios - ionic 应用程序的 Xcode 7.2 build设置不断重置

iPhone 位置服务已关闭,但应用程序仍能获取位置?

ios - view.bounds.size.height -vs- view.bounds.height——有什么区别吗?

ios - 自定义 UIView 中的动画更改

ios - Swift - 标签角在tableviewcell中有不同的半径