gpt4 book ai didi

iphone - InterfaceBuilder - UIViewController 子类未被识别为子类

转载 作者:行者123 更新时间:2023-12-03 20:50:27 24 4
gpt4 key购买 nike

我正在开发一个简单的 iPhone 应用程序。

我有 1 个 UINavigationController 和 2 个 UIViewController 子类。

我有一个 MainWindow.xib 文件、一个 PersonListView.xib 和一个 PersonDetailView.xib。

MainWindow.xib 具有 UINavigationController,其 View 链接到 PersonListView.xib 文件。

PersonListView.xib 将文件的所有者列为 PersonListViewController 类。

我在 PersonListView 上有一些按钮,以及标签和图像。全部显示正确。

当我尝试将 PersonListView 上的按钮链接到我的 PersonListViewController 类时,该按钮没有触发......

结果: * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[UIViewController viewDetail]:无法识别的选择器发送到实例 0x450d50”

如果我进入调试控制台并打印对象 0x450d50,我会得到:

(gdb) 打印对象 0x450d50(gdb)

界面生成器正确地将文件所有者显示为 PersonListViewController,那么为什么我的按钮操作(链接到文件所有者)会以某种方式转到父类(super class)?

EDIT1:好吧,似乎发生的事情是我没有获得子类的实例,除非在我的 MainWindow.xib 中,我明确地将 View Controller 的类设置为我的子类。

不过,我仍然缺少一些东西,因为我肯定应该能够通过从主窗口交换 NIB 文件名来启动 UIViewController 的任意子类?

EDIT2:(回复凯文)我所说的并不是 XIB 的内容。

我有 3 个 XIB:

主窗口人员 ListView 人员详细信息 View

PeopleListView 和 PeopleDetailView 都有一个关联的文件所有者,它是相应的 UIViewController 子类。显然,当我从一个页面移动到另一个页面时,我需要我的事件转到正确的 Controller 类...但是如果我只能使用默认的 UIViewController 或一个子类,那会困难得多吗?

我可以通过使用正确的根手动设置 UINavigationController 来在代码中获得正确的效果,但我觉得通过 InterfaceBuilder 应该有更好的方法。

EDIT3:(对肯德尔)我没有使用标签栏。不过,模型是相同的,导航 Controller 中的 View 必须连接到单个子类,这似乎有点令人讨厌。

EDIT4:(丢失在运输途中)PersonListViewController 有适当的 - (IBAction) viewDetail;方法。问题是,我在 MainWindow.xib 中找不到一种方法,将 UINavigationController 内的 View 标记为“最初从 PersonListView.xib 加载此 View ,并使用 PersonListViewController 作为 View ”,这不会使将 PersonListView 替换为 PersonDetailView。

最佳答案

我认为您正在使用标签栏,对吗?

如果是的话,请这样想。 MainWindow xib 中定义的每个选项卡都必须定义为自定义 View Controller 类型,因为这是选项卡栏在加载时将创建的类型。选项卡栏为加载时定义的每个选项卡创建 View Controller 。

仅创建任何 View Controller 的实例然后加载自定义 NIB(这就是您定义的选项卡栏现在正在执行的操作)是不够的,因为自定义 View 中的连线将没有任何可附加的内容.

因此,确保 MainWindow.xib 中每个选项卡下定义的每个 View Controller (使用 IB 中的 TreeView 来检查这一点)设置为正确的自定义 UIViewController 类型,此外还指向您的自定义 XIB,该 XIB 还必须具有文件所有者设置为正确的类型(尽管只有在基本 View 之外将任何内容连接到文件所有者时这才重要)。

关于iphone - InterfaceBuilder - UIViewController 子类未被识别为子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/412083/

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