gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 02:21:20 24 4
gpt4 key购买 nike

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

编辑

这里有一些关于我想做的事情的更多细节。我目前有这些类(class):

ControlView
ControlViewController

与 Storyboard 有关。我使用以下方法加载 ControlViewController 的实例:

self.storyboard!.instantiateViewControllerWithIdentifier("ControlViewController")! as! ControlViewController

现在我想做的是 ControlView 的子类,这样我就可以更改一些约束并添加一些额外的 subview 。我们称这个子类为 ExpandedControlView。我还想将 ControlViewController 子类化,因为我想从 ExpandedControlView 添加一些额外的操作到 Controller 。这可以称为 ExpandedControlViewController

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

最佳答案

在 Storyboard 中,选择层次结构 View 。

Select hierarchy view

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

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

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

这样做时需要注意的是,任何 subview 的布局都可能在调用 loadView 时发生变化。因此,如果您的自定义 View 中有 subview ,您还应该覆盖自定义 View 中的 layoutSubviews 并在那里再次设置所有 View 的 subview 的 frame 属性。

关于ios - 使用 UIViewController 子类的子类和 UIView 子类的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30803276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com