我有一个 UIViewController - 让我们称之为“FormController” - 它只是一个编辑对象的表单。我想在两种不同的情况下使用它:
创建一个新对象 - 使用 UINavigationController 的presentModalViewController:
method.
编辑现有对象 - 将视图控制器推送到 UINavigationController 堆栈上,而不是使用对话框方法。
略有不同的是,在模式情况下,我希望有一个带有“取消”和“完成”按钮的工具栏,而在堆栈情况下,我只想有 UINavigationController 提供的导航栏。
这类似于联系人应用程序,其中“新建联系人”和“编辑联系人”屏幕似乎使用相同的视图控制器,但“新建联系人”表单以模态方式呈现,而“编辑”屏幕则被推送到导航堆栈上。
我的问题是:处理这两种情况的最佳方法是什么,而不必编写两个独立但大部分相同的视图控制器?
我想过创建一个“ModalFormController”,它通过组合封装裸露的“FormController”并添加一个工具栏,但我在文档中读到Apple不建议嵌套视图控制器。
为什么不使用子类化?制作ModalCreateFormController
的一个子类EditFormController
并处理子类中特定于模式的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)