这是我的情况:子类 B 继承自子类 A 继承自 UIViewController。在子类 B 中,我避免调用 viewWillAppear: 的超级(子类 A)实现,但我认为它不正确,即使它工作正常。
仍然调用 UIViewController 的实现的正确方法是什么?
这是我的情况:子类 B 继承自子类 A 继承自 UIViewController。在子类 B 中,我避免调用 viewWillAppear: 的超级(子类 A)实现,但我认为它不正确,即使它工作正常。
仍然调用 UIViewController 的实现的正确方法是什么?
深层次的层次结构经常会变得混乱,尤其是UIViewController
. 尽可能避免它们。
一种方法是提供一种机制来绕过超类提供的功能。例如:
@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