gpt4 book ai didi

ios - 从 Storyboard 中实例化 View Controller 时应用程序崩溃

转载 作者:可可西里 更新时间:2023-11-01 05:36:14 25 4
gpt4 key购买 nike

我正在为我的应用实现超时操作。我提到了这个 stackoverflow 线程 iOS perform action after period of inactivity (no user interaction)并且确实遵循了完全相同的方法,但是我的应用程序在即将转换到此处的新 View Controller 时崩溃了

UIStoryboard *myStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:NULL];

UIViewController *cont = [myStoryboard instantiateViewControllerWithIdentifier:@"abc"];

我在 Storyboard ID 下的 Storyboard文件中给出了名称 abc。还有其他方法可以加载 View Controller 吗?这有什么问题?为什么我的应用程序崩溃了?

这是来自控制台的崩溃消息:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle"

我没有与我要加载的 Controller 关联的 .xib 文件。我只有 abc.h 和 abc.m 文件。但是在我的 Storyboard文件中,我有一堆 View Controller ,并且在那里,我将其中一个 View Controller 的类指定为“abc”。还不够吗?或者,加载我的 View Controller 的最佳方式是什么?使用 segue ?

最佳答案

关于您的异常 - 您的 Storyboard 可能未复制到主包中。参见 this .

此外,方法 instantiateViewControllerWithIdentifier 使用 Storyboard 本身定义的 Storyboard ID 而不是 View Controller 的名称。参见 this有关如何从 Storyboard 中实例化特定 View Controller 的更多信息,或者如果您想初始化初始 View Controller ( Storyboard 中箭头指向的 View Controller ),请使用 instantiateInitialViewController

编辑:异常是由于 iOS 中的一个错误而引发的,其中带有名称修饰符的 Storyboard ,例如 Storyboard_ipadStoryboard_iphone 导致内部 iOS 机制发生困惑 [UIStoryboard storyboardWithName:bundle:]。解决方案是避免使用此命名约定,并可能编写一个辅助函数来通过检查当前设备习惯用法来选择要加载的 Storyboard名称。

关于ios - 从 Storyboard 中实例化 View Controller 时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17660692/

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