gpt4 book ai didi

objective-c - 重用 View Controller

转载 作者:行者123 更新时间:2023-12-01 19:15:07 24 4
gpt4 key购买 nike

我不清楚如何重用 View Controller 。如果您创建了一个 View Controller 子类来做一些事情(它的作用并不重要,只是它做了您在 View 中需要的事情),它可以与不同的 View 一起使用还是应该再次子类化?

换句话说,如果我在应用程序的不同部分的 View 中需要完全相同的功能,我可以使用原始 View Controller 并从新 View 中添加 socket 吗?或者我应该子类化自定义 Controller 并为 View 提供“自己的” View Controller ?

最佳答案

您可以为 View Controller 创建两个 xib。

如果你有文件...

MyViewController.m
MyViewController.h

然后你可以添加xibs ...
MyViewControllerXib1
MyViewControllerXib2

只需将“文件的所有者”设为 MyViewController。

然后,当您需要第一个 XIB 的 UI 布局时,您可以调用...
MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyViewControllerXib1" bundle:[NSBundle mainBundle]];

当您需要第二个 UI 时,您可以调用...
MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyViewControllerXib2" bundle:[NSBundle mainBundle]];

您获得的对象将是相同的,但布局 UI 的 Nib 会发生变化。

另一种方法

只是在这里大声思考。

你也可以创建一个没有 nib 的 ViewController。

然后创建两个子类,每个子类都有一个 Nib 。现在您有了代码重用和单独的布局,但您还可以对“主” Controller 的每个子类进行精细的控制调整。

然后,您可以从此主视图 Controller 创建任意数量的子类。

使用 Storyboard

只需将一个新的 ViewController 对象拖到 Storyboard 上。将类更改为 View Controller 类并设置 UI 并将控件拖动到代码等...然后您将拥有两个看起来不同但共享相同功能代码的屏幕。

这和我一开始说的一样,但是用 Storyboard代替。

关于objective-c - 重用 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13864422/

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