0

我正在编写一个测试项目来学习用代码编写所有内容。我想这样做,以便我可以更好地理解情节提要中的元素在幕后为我做了什么

在我的项目中,我有几个 UIViewControllers 共享相同的 UI 元素。例如,我在屏幕顶部有一个 UITool 栏,里面有几个按钮。

现在我想把 UIToolbar 放在一个单独的类中,这样我就不必把它全部写出来或复制粘贴到每个控制器中。

现在我知道我可以通过这样做来实现这一点:

#import "General_Add_ons.h" //the UIToolbar is properly set up in this file

@interface FirstViewController : General_Add_ons  

然后我只是使用[self topToolBar];//topToolBar 是工具栏的名称

现在我只想澄清这是最好的还是唯一的方法?

不知何故,我觉得我应该能够做到这一点:

    General_Add_ons *gao = [[General_Add_ons alloc] init];
    [gao topToolbar];

我在想这个错误的方式吗?如果我有多个外部类,第一种方法似乎是有限的。

提前致谢。

4

2 回答 2

1

你的方法似乎是正确的。如果您有多个UIViewController实例需要相同的 UI 元素或其他控制器代码,则可以将这些元素放在UIViewController子类中。就您而言,我相信该类General_Add_onsUIViewController您的子类将继承的类。

这个类(你的General_add_ons)应该有一个可重用工具栏的属性,例如

@property (nonatomic, strong) UIToolbar *toolbar;

顺便说一句,Cocoa 中的类名,按照惯例是:前缀+大写单词,不带下划线。Apple 对命名约定有很好的参考。

编辑

为澄清起见,您可以根据需要多次对自定义子类进行子类化。例如,在我的代码中,我有一个类CCFViewController,它封装了我希望所有视图控制器都具有的常见属性和行为。那么,在项目中,所有视图控制器都继承自该父控制器。同样,您的工具栏将存在于超类中,并且其他控制器从它继承。

于 2012-09-24T11:10:44.993 回答
0

我不是 100% 确定,但我认为你应该这样尝试:

General_Add_ons *gao = [[General_Add_ons alloc] init];
[gao.topToolbar anypossiblemethodcall];
于 2012-09-24T11:15:46.657 回答