IOS - 使用#import类的正确方法

时间:2012-09-24 10:46:34

标签: objective-c ios class import

我正在编写一个测试项目,学习用代码编写所有内容。我想这样做,这样我就可以更好地理解故事板中的元素在幕后为我做什么

在我的项目中,我有几个共享相同UI元素的UIViewControllers。例如,我在屏幕顶部有一个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];

我是否以错误的方式思考这个问题?第一种方式似乎是限制,以防我有多个外部类。

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

此类(您的General_add_ons)应具有可重复使用工具栏的属性,例如

@property (nonatomic, strong) UIToolbar *toolbar;

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

修改

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

答案 1 :(得分:0)

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

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