iOS从单个nib文件子类化和IBOutlet连接的继承

时间:2014-06-12 18:00:30

标签: ios objective-c inheritance xib subclassing

我特别擅长iOS编程和MVC编程。

我有一个项目,它为多个子类使用单个nib(最初为nib创建的所有基类)。 nib只包含存储在IBOutlet连接中的按钮集合。我希望按钮在单击时显示和执行不同的操作,具体取决于引用nib的子类。

比如说,我有一个名为BaseClassViewController的基类,带有一个具有一个属性的nib BaseClassViewController.xib

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *buttonCollection

现在我有一个名为SubClassViewController的子类,它是基类的子类。

我的问题是,如果我调用SubClassViewController [super initWithNibName:@“BaseClassViewController”bundle:nil]的实例,则会加载右边的nib。我是否还继承了基类的IBOutletCollection属性以及集合与基类的.xib之间的所有连接?

如果没有,有没有办法为单个xib执行此操作而不在子类中创建新属性并重新建立与子类的xib的连接?在这个简化的例子中,这似乎打败了继承的目的。

我的最终目标是在应用程序的不同阶段点击按钮时执行不同的操作。我想到的一种可能性是在单个视图控制器中创建某种属性,以确定点击将执行的操作,例如:

-(IBAction) buttonClicked:(UIButton)sender{ 
    if([modeString isEqualToString:@"Mode1"]){
        \\Do something
    }
    ...
 }

但这对组织不友好,我想为每个子类视图控制器提供其他方法。除了子类化之外,还有更好的方法吗?我应该为每个子类只有一个不同的笔尖,即使它们对于每个子类都是相同的吗?我应该做点什么吗?

0 个答案:

没有答案