gpt4 book ai didi

xcode - 如何以编程方式子类化存储在 Storyboard 中的 UIViewController?

转载 作者:行者123 更新时间:2023-12-02 06:23:14 24 4
gpt4 key购买 nike

我正在开发我的第一个 iPad 应用程序并第一次使用 Storyboards。

我的 Storyboard 中有 UITableViewController,它对自定义单元格使用“动态原型(prototype)”。

我想要做的是以编程方式实例化我的 UITableViewController 子类,但从 Storyboard 加载 super View Controller 。

这是因为我有一个 UI,但有多个子类来实现每个不同实例所需的特定功能。

使用 .xib 文件很容易做到这一点,我会编写以下代码:

MyViewControllerSubClassA *viewControllerA = [[MyViewControllerSubClassA alloc] initWithNibName:@"generalViewControllerNib" bundle:nil];

MyViewControllerSubClassB *viewControllerB = [[MyViewControllerSubClassB alloc] initWithNibName:@"generalViewControllerNib" bundle:nil];

我知道单击 View Controller 时可以在 Storyboard 编辑器中分配子类,但我想在实例化时以编程方式设置子类。

这对于 Storyboard来说似乎不可能做到,因为它们是自动实例化的。

这使得 Storyboard的整个概念显得有缺陷并且不太面向对象。

如果我将 View Controller 从 Storyboard 移出并放入 .xib 文件中,我将无法使用动态和静态原型(prototype)单元格,因为仅在使用 Storyboard 时才支持这些单元格。另外,Apple 的文档基本上说从现在开始使用 Storybaords。

最佳答案

我会尝试这样的事情:

MyViewControllerSubclassA *controllerA = (MyViewControllerSubclassA *)[self.storyboard instantiateViewControllerWithIdentifier:@"myGenericVC"];

关于xcode - 如何以编程方式子类化存储在 Storyboard 中的 UIViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12816692/

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