gpt4 book ai didi

ios - instantiateViewControllerWithIdentifier 和 initWithNibName 的区别?

转载 作者:行者123 更新时间:2023-12-01 17:29:49 24 4
gpt4 key购买 nike

和有什么区别实例化ViewControllerWithIdentifier initWithNibName ,除了前者来自 Storyboard ,后来不是吗?

UIStoryboard *signupStory = [UIStoryboard storyboardWithName:@"SignupStory" bundle:[NSBundle mainBundle]];
SignupLoginViewController *signUpVC = [signupStory instantiateViewControllerWithIdentifier:@"SignupVC"];


SignupLoginViewController *signUpVC = [[SignupLoginViewController alloc] initWithNibName:@"SignupLoginViewController" bundle:[NSBundle mainBundle]];

最佳答案

如果您使用 Storyboard 创建了 UI,则需要调用 instantiateViewControllerWithIdentifier .在这里,标识符不是 View Controller 本身的一部分,而是仅由 Storyboard 用于定位 View Controller 。 Storyboard将处理初始化并最终调用 initWithCoder ,这就是为什么在创建子类 View Controller 时需要覆盖它的原因。

另一方面,如果您的 UI 驻留在纯 .xib 文件中 - 开发人员通常使用 initWithNibName .从技术上讲,它确实打破了封装,还有其他方法可以做到这一点,但您会看到它最常使用,因为它是类的指定初始化程序。

关于ios - instantiateViewControllerWithIdentifier 和 initWithNibName 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31293386/

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