这是我的情况:子类B继承自子类A继承自UIViewController。在Subclass B中,我正在避免调用viewWillAppear:的super(子类A)实现,但我认为这是正确的,即使它工作正常。
仍然调用UIViewController的实现的正确方法是什么?
答案 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