iPhone - 嵌套 View 和 Controller

标签 iphone objective-c cocoa cocoa-touch model-view-controller

是否可以有一个单一的 iPhone 屏幕,其 View 由该屏幕的 UIViewController 从 xib 加载,但该屏幕内的另一个 UIView 的内容从单独的 xib 文件加载?如果是这样,是否可以让嵌套 View 的事件由屏幕其余部分的单独自定义 UIViewController 子类处理?如果这两件事都可能的话,它们是否也是可取的?

最佳答案

这是可能的。 Apple 建议不要同时在屏幕上激活多个 UIViewController,因此他们会建议不要这样做。我建议仅当第二个 View Controller 的原因是导航或模式时才这样做。

用于加载其他 View Controller (例如导航 Controller )的 View Controller 本身需要一些屏幕空间,并使用剩余的屏幕空间来加载另一个 View Controller 。没事儿。这里的标准是只有一个 Controller 呈现内容,而另一个 Controller 呈现导航。

View Controller 可以加载另一个 View Controller 来执行一些有限的任务,例如从列表中选择一个项目或输入一些文本。第二个 View Controller 可能只填充屏幕的一部分。这里的标准是一个 Controller 的行为是模态的,并且只会显示足够长的时间以获得一些用户输入。

对于在两个呈现内容的 View Controller 之间分割屏幕的一般情况,Apple 建议您使用从 UIViewController 派生的单个类来管理 View 。如果 View 足够复杂,需要其他 Controller ,则从 NSObject 派生它们,并让主视图 Controller 管理子 Controller 以及 View 。子 Controller 将主 Controller 作为委托(delegate),主 Controller 将 View 传递给子 Controller 进行管理,但不拥有。

关于iPhone - 嵌套 View 和 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2933133/

相关文章:

iphone - 从 MAC 地址识别设备类型

javascript - 在 sencha touch 中动态添加一个项目到工具栏

iphone - 如何在 iPhone 上从 URL 接收数据?

objective-c - 根据人机界面指南,哪些 Cocoa 控件是侧边栏控件?

c++ - iOS OpenCV cvtColor 未知数组类型错误

ios - Fairplay SPC 请求返回 nil

macos - 如何从歌曲文件中获取歌曲的歌词

objective-c - 使用 Objective C 的正确方法

xcode - OSX 列表组件 Objective-C

iphone - 加载到CoreData