【发布时间】:2010-12-11 18:54:53
【问题描述】:
我有一个 UIViewController——我们称之为“FormController”——它只是一个编辑对象的表单。我想在两种不同的情况下使用它:
创建一个新对象——使用 UINavigationController 的
presentModalViewController:方法。编辑现有对象 - 将视图控制器推入 UINavigationController 堆栈,而不是使用对话框方法。
在模态情况下,我希望有一个带有“取消”和“完成”按钮的工具栏,而在堆栈情况下,我希望只有 UINavigationController 提供的导航栏。
这将类似于联系人应用程序,其中“新联系人”和“编辑联系人”屏幕似乎使用相同的视图控制器,但新联系人表单在编辑屏幕被推送到导航堆栈时以模态方式呈现.
我的问题是:处理这两种情况的最佳方法是什么,而无需编写 2 个单独但大部分相同的视图控制器?
我想过创建一个“ModalFormController”,它通过组合封装裸露的“FormController”并添加一个工具栏,但我在文档中的某处读到 Apple 不建议嵌套视图控制器。
【问题讨论】:
标签: iphone ios cocoa-touch uiviewcontroller uinavigationcontroller