gpt4 book ai didi

iphone - 为什么 viewDidAppear 没有被触发?

转载 作者:行者123 更新时间:2023-12-03 19:26:37 25 4
gpt4 key购买 nike

我有一个 Root View Controller ,它在其 viewDidLoad 方法的索引 0 处插入 subview 。

我试图让 subview 成为firstResponder,但根据我的理解,只能在 subview 的viewDidAppear 方法中做到这一点。

这是我添加到 Root View Controller 的 viewDidLoad 方法中的代码行:

        [self.view insertSubview: subViewController.view atIndex: 0];

subview Controller 有一个 xib,subViewController.xib,它在运行时正确显示。然而,subViewController 的 viewDidAppear 不会被触发。

知道为什么会发生这种情况吗?知道如何解决这个问题 - 除了手动调用 viewDidAppear (这样做会导致无法成为firstResponder)?

谢谢

姆博塔

最佳答案

您必须将 View Controller 推送到导航堆栈才能调用其委托(delegate)方法。将 View Controller 的 View 添加到 subview 数组不会调用它们。您应该做的第一件事是阅读View Controller Programming Guide from Apple因为这将使您免于因以非标准方式执行此操作而造成的一些麻烦。

不要将 View 添加到 Root View Controller subview ,而是执行以下操作:

SubviewController *controller = [[SubviewController alloc] init];
[[self navigationController] pushViewController:controller animated:YES];
[controller release], controller = nil;

现在您的委托(delegate)方法将被调用。但是,如果您没有导航 Controller 作为 Root View Controller ,则这将不起作用。

关于iphone - 为什么 viewDidAppear 没有被触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1718495/

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