我正在努力构建一个特定的控件。我把它称为ImageTile。它基本上是一个小方框,当用户点击它时,将向用户(通过弹出框中的动作表)呈现从库中选择图像或拍照的选项。根据响应,我然后在弹出框(用于选择图像)或模态(用于拍摄新图片)内呈现UIImagePickerController。一旦他们拍摄/选择图像,我就会出现一个模态视图,并允许他们以一些简单的方式编辑图片。当他们完成编辑时,模态解散,原始的ImageTile,而不是一个空白的方框,充满了用户的编辑图像。
问题是这个ImageTile控件将在应用程序的几个不同部分,大量的View Controller层次结构中大量使用,等等......我真的希望它是一个基本上完全独立的单元这样每当我将一个ImageTile放在屏幕上的UIView中时,所有上述功能都由ImageTile本身处理。
最初,我把它变成了一个UIViewController子类(所以它可以呈现模态等),并且只是将它的视图添加为" holder"的子视图。在屏幕上查看。我知道这不是推荐的,因为控制器不是VC层次结构的一部分......然而,我最后还是有一些非常奇怪的行为,比如自动旋转,特别是当涉及到相机时。
"对"是什么?实现这样的方法?
答案 0 :(得分:1)
我认为通过将其设为UIViewController
子类而做的事情是正确的。您应该只使用UIViewController
公开的方法来添加子视图控制器,例如- addChildViewController:。
您还会注意到Interface Builder有一个Container View对象,专门用于在子视图层次结构中保存一个位置: