UIViewController子类的子类 - 如何避免super的实现?

时间:2012-09-18 11:57:57

标签: cocoa uiviewcontroller subclass

这是我的情况:子类B继承自子类A继承自UIViewController。在Subclass B中,我正在避免调用viewWillAppear:的super(子类A)实现,但我认为这是正确的,即使它工作正常。

仍然调用UIViewController的实现的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

深层次结构层次结构常常变得混乱,尤其是UIViewController。尽可能避免使用它们。

一种方法是提供绕过超类提供的功能的机制。 E.G:

@interface MagicalViewController : UIViewController
-(BOOL)shouldDoMagicOnViewWillAppear;
@end


@implementation MagicalViewController

-(void)viewWillAppear:(BOOL)animated {
   [super viewWillAppear:animated];

   if ([self shouldDoMagicOnViewWillAppear]) {
      //do magic
   }
}


-(BOOL)shouldDoMagicOnViewWillAppear {
    return YES;
}


@end



@interface NotSoMagicalViewController : MagicalViewController
@end

@implementation NotSoMagicalViewController

-(BOOL)shouldDoMagicOnViewWillAppear {
    return NO;
}

@end