是否可以在子类中定义子类可以覆盖的插座?
例如,我有以下观点:
@interface ParentView
@view
@interface FirstChildView : ParentView
@view
@interface SecondChildView : ParentView
@view
以及以下控制器:
@interface ParentController
// ???
@end
@interface FirstChildController : ParentController
@property (strong, nonatomic) IBOutlet FirstChildView *myView;
@end
@interface SecondChildController : ParentController
@property (strong, nonatomic) IBOutlet SecondChildView *myView;
@end
是否可以在ParentController中定义一个插座,作为FirstChildController和SecondChildController下myView的“父”插座?
答案 0 :(得分:0)
但是你为什么要这样做......你可以像下面这样做。
@interface ParentController
@property (strong, nonatomic) IBOutlet ParentView *myView;
@end
@interface FirstChildController : ParentController
//Assign it from your code/outlet for First Child view.
//Like self.myView = <FirstChildView>
@end
@interface SecondChildController : ParentController
//Assign it from your code/outlet for Second Child view.
//Like self.myView = <SecondChildView>
@end
您可以通过类型转换来使用子类属性。
答案 1 :(得分:0)
谢谢大家回答我的问题。以下是我最终的目的:
@interface ParentController
@property (strong, nonatomic) UIView *myView;
@end
@interface FirstChildController : ParentController
- (UIView *) myView
{
return self.myFirstChildView;
}
@property (strong, nonatomic) IBOutlet FirstChildView *myFirstChildView;
@end
@interface SecondChildController : ParentController
- (UIView *) myView
{
return self.mySecondChildView;
}
@property (strong, nonatomic) IBOutlet SecondChildView *mySecondChildView;
@end
因此,如果我有一个使用FirstChildController的场景,ParentController中的'self.myView'将引用'myFirstChildView'。