应用设计问题

时间:2011-06-08 03:34:44

标签: objective-c cocoa-touch

我有一个使用UITabBarController作为其外部容器的应用程序。每个选项卡都使用UINavigationController作为其根视图控制器。我使用一个多按钮工具栏作为导航栏的右侧栏按钮。其中一些工具栏按钮是应用程序的通用按钮;一些属于个别标签。

我的直觉是使用所有通用工具栏构造和实现代码创建一个基本视图控制器类,然后让我的每个根视图控制器继承自这个基类。如果他们想要在工具栏中添加其他按钮,他们只需要覆盖工具栏构造方法(我将集中构建工具栏),并添加其他按钮的实现代码。

理论上听起来不错,但由于我是Objective-C的新手,我欢迎来自更有经验的开发人员的任何其他意见/建议。

1 个答案:

答案 0 :(得分:0)

如果您在“工具栏构造和实现”中有足够的可重用代码来激励您实现基类并在子类上重复使用它,那么它实际上听起来像是一个很好的解决方案。

您应该分析的一件事是您将扩展哪个类:UIViewController或UIToolBar。

如果你只想要一个只改变一些视觉属性的自定义可重用工具栏(比如左键的标签,或者让右键可见或不可用等等),也许最好的方法是实现一个基础从UIToolBar扩展的类,然后在视图控制器中使用它。

但是如果你有来自工具栏按钮的相当复杂的逻辑处理动作,或者除了简单的可视属性设置之外的任何“重型代码”,那么创建扩展UIViewController的基类听起来就像是一种更好的方法。

更好的选择取决于您和您想要实现/重用的内容。

祝你好运!