使用UIViewController子类的子类和UIView子类的子类

时间:2015-06-12 12:37:53

标签: ios swift model-view-controller subclass

我的应用程序中有一个特定视图的MVC架构。现在我想创建View和Controller部分的子类。原始UIViewController子类从故事板加载了UIView子类。如何使我的UIViewController子类的子类在加载其视图时使用我的UIView子类代码的子类?

修改

这里有一些关于我想做什么的更多细节。我目前有这些课程:

ControlView
ControlViewController

与故事板连接。我使用:

加载ControlViewController的一个实例
self.storyboard!.instantiateViewControllerWithIdentifier("ControlViewController")! as! ControlViewController

现在我要做的是子类ControlView,以便我可以更改一些约束并添加一些额外的子视图。让我们调用这个子类ExpandedControlView。我还希望继承ControlViewController,因为我想从ExpandedControlView向控制器添加一些额外的操作。这可以称为ExpandedControlViewController

然后我希望能够实例化ExpandedControlViewController并使用ExpandedControlView ControlViewControllerControlView一起使用。

2 个答案:

答案 0 :(得分:1)

在情节提要中,选择层次结构视图。

Select hierarchy view

然后在左侧的层次结构中选择您的UIViewController视图,并在右侧的身份检查器中选择该视图的类。 Hierachy View

或者如果您想在代码中执行此操作。覆盖ControlViewController上的viewDidLoad,实例化自定义视图并将ControlViewController的视图属性设置为自定义视图。

-(void)loadView{
    ControlView *myCustomView = [[ControlView alloc]initWithFrame:[UIScreen mainScreen].applicationFrame];
    self.view = myCustomView;
}

执行此操作时需要注意的是,任何子视图的布局都可能会在调用loadView时发生变化。因此,如果您在自定义视图中有子视图,则还应在自定义视图中覆盖layoutSubviews,并设置所有视图的子视图'那里的框架属性。

答案 1 :(得分:0)

在视图控制器子类中实现loadView,并使用自定义视图子类的实例设置view属性。