gpt4 book ai didi

ios - nib 中的 UIView 未连接到 IBOutlets

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:11:15 26 4
gpt4 key购买 nike

我以这种方式在屏幕上添加一个 UIView:

ViewController2 *detailViewController = [[ViewController2 alloc] initWithNibName:@"MJDetailViewController" bundle:nil];
[self presentPopupViewController:detailViewController animationType:MJPopupViewAnimationFade];

由于 MJDetailViewController 是一个 nib 并包含一个 UIView,我创建了一个自定义的 UIView 类,并将其选为检查器中 View 的类。加载窗口时,UIButtons 在已创建的类中执行操作,但 IBOutlets 不起作用。即使我决定以可编程方式添加 UIButton,它也不会出现在屏幕上。为什么是这样?

我想过将 UIView 更改为 UIViewController,但它行不通,因为您无法用动画呈现它。

最佳答案

我怀疑你没有正确设置 nib 对象。

除了设置 UIView 子类的类之外,您还需要配置“文件所有者”并将 View 连接到它。您可以通过选择文件所有者并设置其类别来完成此操作(这与设置 View 的类别相同)。在您的情况下,文件所有者的类应该是 ViewController2

希望这张截图能更好地解释这一点: Setting up a view controllers nib

您还可以通过使用 UIViewController nib 命名约定来简化一些事情。如果您为 nib 提供与 View Controller 相同的文件名,那么您可以将 nil 指定为 nibName:。例如,如果您将 nib 命名为 ViewController2.xib,那么您可以这样做:

ViewController2 *detailViewController = [[ViewController2 alloc] initWithNibName:nil bundle:nil];

这种方法更可取,因为它意味着 nib 文件名成为调用代码不需要知道的实现细节。

关于ios - nib 中的 UIView 未连接到 IBOutlets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18588404/

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