gpt4 book ai didi

ios - addChildViewController 给出 NSException 错误?

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

我刚开始使用这种方法,所以我可能完全错了,所以这是我的代码:

@property (nonatomic, weak) ConverterViewController *converterViewController;
@property (nonatomic, weak) CalculatorViewController *calculatorViewController;

如果我对这段代码的理解是正确的,那么它们就是对两个不同 ViewController 的引用。

然后我的 viewDidAppear 方法中有这个:

[self addChildViewController:_converterViewController];
[_converterViewController didMoveToParentViewController:self];
[self.view addSubview:_converterViewController.view];

当我尝试将它添加为 subview Controller 时,我在第一行收到 NSException。所以不知道这是否应该在我的 ConverterViewController 类中调用一些方法,我在该类中的 initWithNibName 和 viewDidLoad 方法中放置了一些断点,我发现这两个方法都没有被调用,所以我不确定哪里出了问题。然后我真的不确定会出什么问题,所以非常感谢任何帮助。

这是我从控制台得到的全部信息:

libc++abi.dylib: terminating with uncaught exception of type NSException

最佳答案

更新的答案:

[self addChildViewController:_converterViewController]; 不会创建 converterViewController
它只是获取 converterViewController 对象并将其作为 childViewController 添加到 self

您需要在 -addChildViewController: 之前分配内存并实例化对象 converterViewController 否则它的值将为 nil 并且什么也不会发生.

所以...这个:

_converterViewController = [[ConverterViewController alloc] initWithNibName:@"ConverterViewController"
bundle:nil];

//now... adding it as childViewController should work
[self addChildViewController:_converterViewController];
[_converterViewController didMoveToParentViewController:self];
//optional: give it a frame explicitly so you may arrange more childViewControllers
//[_converterViewController.view setFrame:CGRectMake(0,0,100,100)];
[self.view addSubview:_converterViewController.view];

关于ios - addChildViewController 给出 NSException 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23982965/

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