gpt4 book ai didi

ios - 尝试从 Storyboard初始化 View Controller

转载 作者:可可西里 更新时间:2023-11-01 03:11:32 24 4
gpt4 key购买 nike

我在主 Storyboard中放置了一个 View Controller ,但是当我尝试初始化和加载 View Controller 时,我的应用程序崩溃了。我使用的 xcode 版本并没有真正告诉我正确得到的错误,但我确实看到它给了我一个 sigabrt 信号。我不知道为什么它不起作用。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SelectDateViewController"];
[vc setModalPresentationStyle:UIModalPresentationFullScreen];

[self presentModalViewController:vc animated:YES];

我是这样调用它的。我使用的所有名称都是正确的,但我仍然不明白为什么会崩溃。

最佳答案

在最后一行设置断点以验证 vc(以及 Storyboard)是否为零。

如果 viewController 参数为 nil,presentModalViewController 将崩溃。

如果两者都为零,那么您的 Storyboard名称可能不正确(不太可能)。

如果只有 vc 为 nil,则标识符不正确(在代码或 Storyboard 中)。确保 VC 的 Storyboard ID(如屏幕截图中圈出的那样)与您的描述相符。通常不为此选择类名(因为您的 Storyboard 中可能有多个给定类的实例)。

Storyboard ID 区分大小写并且必须是唯一的。我发现设置它的可靠方法是在选择 View Controller 并按返回结束编辑后在该字段中键入名称(不要只是单击该字段)。我注意到在从 Xcode 4 转换到 5 时 Storyboard中发生了一些损坏,反之亦然,因此深入研究 plist/xml 可能也会有所帮助。

Storyboard ID

编辑:调用它的时间也很重要,请参见 presentModalViewController not working .确保接收消息的 View Controller 已经显示(即在 viewDidAppear 中调用,而不是 viewDidLoad)。

正如 Abdullah 所提到的,您可能应该将已弃用的方法移至:

[self presentViewController:vc animated:YES completion:nil];

在这种情况下,完成 block 可以是 nil 没有问题,但 vc 不能是。

关于ios - 尝试从 Storyboard初始化 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19017396/

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