我的应用程序中有一个特定视图的MVC架构。现在我想创建View和Controller部分的子类。原始UIViewController
子类从故事板加载了UIView
子类。如何使我的UIViewController
子类的子类在加载其视图时使用我的UIView子类代码的子类?
修改
这里有一些关于我想做什么的更多细节。我目前有这些课程:
ControlView
ControlViewController
与故事板连接。我使用:
加载ControlViewController的一个实例self.storyboard!.instantiateViewControllerWithIdentifier("ControlViewController")! as! ControlViewController
现在我要做的是子类ControlView
,以便我可以更改一些约束并添加一些额外的子视图。让我们调用这个子类ExpandedControlView
。我还希望继承ControlViewController
,因为我想从ExpandedControlView
向控制器添加一些额外的操作。这可以称为ExpandedControlViewController
。
然后我希望能够实例化ExpandedControlViewController
并使用ExpandedControlView
ControlViewController
与ControlView
一起使用。
答案 0 :(得分:1)
在情节提要中,选择层次结构视图。
然后在左侧的层次结构中选择您的UIViewController视图,并在右侧的身份检查器中选择该视图的类。
或者如果您想在代码中执行此操作。覆盖ControlViewController上的viewDidLoad,实例化自定义视图并将ControlViewController的视图属性设置为自定义视图。
-(void)loadView{
ControlView *myCustomView = [[ControlView alloc]initWithFrame:[UIScreen mainScreen].applicationFrame];
self.view = myCustomView;
}
执行此操作时需要注意的是,任何子视图的布局都可能会在调用loadView时发生变化。因此,如果您在自定义视图中有子视图,则还应在自定义视图中覆盖layoutSubviews,并设置所有视图的子视图'那里的框架属性。
答案 1 :(得分:0)
在视图控制器子类中实现loadView,并使用自定义视图子类的实例设置view属性。