- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
这两种方法都将 View 添加为父 View 的 subview ,并且 View 可以接收事件。什么时候使用哪一个?
最佳答案
这完全取决于您希望如何管理新的 subview 。如果您希望新的 subview 由当前 View 的 View Controller 管理(例如,您要添加一些简单的东西,例如一些 UILabel
对象),您只需调用 addSubview
。另一方面,如果新的 subview 有自己的 View Controller (即它是足够复杂的 View 集合,具有丰富的功能,你想用它自己的 Controller 封装所有这些复杂性来管理这个新 subview 所做的一切)然后您调用 addChildViewController
来添加新的 View Controller ,但随后也调用了 addSubview
。
因此,请注意 addChildViewController
本身不会对 View 执行任何操作。您通常会立即通过添加其 View 的调用来跟随它,例如这是来自 Implementing a Custom Container View Controller 的一个稍微澄清的例子iOS View Controller 编程指南部分:
[self addChildViewController:childViewController]; // add subview's view controller
childViewController.view.frame = ... // specify where you want the new subview
[self.view addSubview:childViewController.view]; // now you can add the child view controller's view
[childViewController didMoveToParentViewController:self]; // now tell the child view controller that the adding of it and its views is all done
所以,这不是 addSubview
vs addChildViewController
的问题,而是 addSubview
vs addChildViewController
+添加 subview
。如果您调用 addChildViewController
,那么您这样做的目的是在某个时候为其 View 调用 addSubview
。
坦率地说,addSubview
与 addChildViewController
+addSubview
这个问题很少是我们思考这个问题的方式。一种更合乎逻辑的思考方式是确定这个新 View 是否有自己的 View Controller 。如果是,则执行 addChildViewController
调用序列。如果没有,您只需调用 addSubview
。
有关 View Controller 包含的良好介绍(例如,该 API 的基本原理、保持 View 层次结构与 View Controller 层次结构同步的重要性等),请参见 WWDC 2011 视频 Implementing UIViewController Containment .
关于ios - addChildViewController 和 addSubview 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30438847/
我对 Objective-C 和 iOS 还很陌生,而且我已经接受了别人编写的应用程序。我注意到一些让我震惊的事情,我认为我的问题与人们提出的关于 addChildViewController 的其他
我正在尝试使用类似于 UINavigationController 的东西,以便我可以自定义动画。首先,我只是使用 Apple 库存动画。这是我的 containerViewController: -
我是第一次涉足 iOS 开发,我必须做的第一件事就是实现 custom container view controller - 让我们称它为 SideBarViewController - 交换它显示
iOS 5引入自定义容器 View Controller 的概念,并提供类似 addChildViewController 的 API .问题:您能否将 View Controller 添加为 sub
使用 Storyboard,我试图在当前 View 之上覆盖一个 UIViewController。 在我的 FirstViewController 中,我导入了 SecondViewControll
灵感来自 Scott Sherwood tutorial我在 UIViewController 中有一个 UIView,它通过自定义 segues 对不同的 UItableviewController
我正在使用下面的代码将 View 添加为addChildViewController。 VideoListVC * videoListVC = [[VideoListVC alloc] initWit
我刚刚观看了 2011 年 WWDC 上有关“实现 UIViewController Containment”的演示 ( here's a link to the video ) 他们提到了将 vie
我在使用 addChildViewController 实现顶部栏(如导航 Controller 栏,但自定义)时遇到问题。我在 .xib 文件中创建了这个栏,并添加了具有正确自动布局约束的按钮和图像
我刚开始使用这种方法,所以我可能完全错了,所以这是我的代码: @property (nonatomic, weak) ConverterViewController *converterViewCon
我正在处理一些需要重构的代码。一个 View Controller 充当两个其他 View Controller 的容器,并将在它们之间交换,如下面的代码所示。 这可能不是最好的设计。可能不需要以这种
我知道在 iOS 中可以通过三种方式更改 View 1. [self addChildViewController:thirdViewController]; [contentView addSubv
这两种方法都将 View 添加为父 View 的 subview ,并且 View 可以接收事件。什么时候使用哪一个? 最佳答案 这完全取决于您希望如何管理新的 subview 。如果您希望新的 su
我正在制作示例项目来实现顶级菜单。 下面是项目结构。 TopMenu 是父 View ,其结构如下所示。 在 TopViewController 中,下面的 viewDidLoad 是我拥有的。 NS
有没有人遇到过这个?以下代码在 iOS 4 模拟器上运行时报告"is",但根据 Apple 文档,方法 addChildViewController 仅在 iOS 5 及更高版本上可用。这似乎不是正确
我想使用与 addChildViewController 相同的功能,但对于版本 4.3(addChildViewController 仅在版本 5 中可用)。提前致谢。 最佳答案 虽然不建议这样做,
我正在尝试重用 this AdMobViewController class 我按照实现示例中的描述应用了它,看起来它工作正常,但我的 View 向上移动并且它现在位于操作栏下方的标题。你能告诉我如何
我有一个 iPhone 应用程序,在手机上运行时运行良好,但在 iPad 上以兼容模式运行时启动时崩溃。我在我的项目中使用 iAd,特别是我正在使用 Bannerviewcontroller.h an
我在Apple上看到这个方法的描述 func addChildViewController(_ childController: UIViewController) This method is on
我有一个类似于模态视图 Controller 的东西,我需要在其他 View Controller 上方显示它。我没有使用常规模式 Controller 功能(presentViewControlle
我是一名优秀的程序员,十分优秀!