gpt4 book ai didi

ios - viewDidLoad 和 ViewDidAppear 未被调用

转载 作者:行者123 更新时间:2023-11-28 21:19:11 28 4
gpt4 key购买 nike

我有一个从 xib 文件创建的 UIViewController

我这样初始化它:

 _sharedSingleton = [[SlipChangesViewController alloc] init];
[[NSBundle mainBundle] loadNibNamed:@"SlipChangesViewController" owner:_sharedSingleton options:nil];

我将那个 UIViewController 的 View 添加到另一个 UIViewController 的 subview 中:

[self.view addSubview:slipChangesVC.view];

现在奇怪的是, View 已成功添加到 subview ,但由于某些原因viewDidLoadvieWillAppear 都没有被调用。但是,它成功调用了创建共享单例的方法和 init 方法。

我已经仔细检查以确保:

  • UIViewsUIViewControllers 都不是 nil
  • xib 的导出已正确链接
  • 我正在调用 [super viewDidLoad][super viewWillAppear]

我检查了 stackOverflow 上的各种线程并尝试了那里的建议但没有成功。例如。调用 [slipChangesVC View ]

有谁知道为什么这两个方法不会被调用?

最佳答案

您正在现有 View 上添加一个 SlipChangesViewController View 。在这种情况下,viewDidLoad 和 viewWillAppear 从未调用过。你需要为此添加一个 ViewController

试试这个

- (void)addChildViewC:(UIViewController *)childViewC
{
[self addChildViewController:childViewC];
childViewC.view.frame = self.view.bounds;
[self.view addSubview:childViewC.view];
[childViewC didMoveToParentViewController:self];
}

关于ios - viewDidLoad 和 ViewDidAppear 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40420982/

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