gpt4 book ai didi

ios - 从另一个 UIViewController 中呈现一个 UIViewController?

转载 作者:行者123 更新时间:2023-11-28 17:34:08 25 4
gpt4 key购买 nike

我是 iOS 的新手,我正在尝试从另一个 View Controller 中呈现一个 View Controller ,如下所述:

Stack overflow answer (见第三个答案)

还有here on Apple's site

我从 Hello World Example code 开始.我打开 MyViewController.m 并修改 updateString() 方法,将此代码添加到末尾:

{
// Get the application's "window"
UIWindow *window = [UIApplication sharedApplication].keyWindow;
// Get the window's rootViewController (NOTE: Only works on iOS 4.0 or later!)
UIViewController *rootViewController = window.rootViewController;

// Create our new controller
UIViewController *enterNameController = [[UIViewController alloc] initWithNibName:@"HighScore" bundle:[NSBundle mainBundle]];

if (enterNameController != NULL)
{
printf("\nLoaded UIView controller. Installing as actionSheetController...\n\n");

UINavigationController *navigationController = [[UINavigationController alloc]
initWithRootViewController:enterNameController];

// Present out Enter Name for High Score view as a modal view
// [rootViewController presentViewController:navigationController animated:YES]; // iOS 2.0 and newer
[self presentViewController:navigationController animated:YES completion: nil]; // iOS 5.0 and newer
}
}

我还创建了一个名为“HighScore.xib”的 NIB 文件,与 HelloWorld 附带的其他 NIB 文件放在一起,我还将 HighScore.xib 添加到 XCode 项目中,并将其拖到“Copy Bundle”中资源”部分。

照原样,我在运行并在编辑字段中输入文本时遇到错误:

* 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法在 bundle 中加载 NIB:名称为“HighScore”的“NSBundle(已加载)”

但是,如果我将最终语句更改为使用“rootViewController”而不是“self”,那么什么都不会发生。也不异常(exception),但也没有呈现新的 View 。

问题:

1) 为什么我的 NIB 无法加载?我显然在这里做错了什么。

2) 为什么使用“rootViewController”而不是“self”会产生不同的结果? rootViewController 不应该找到与“self”相同的类吗?

请注意,当使用“rootViewController”时,我在 XCode 中收到警告:“MyViewController”可能不会响应“-presentViewController:animated:completion”

最佳答案

我通过以下方式解决了这个问题:

a) 使用此处的教程:

http://timneill.net/2010/09/modal-view-controller-example-part-1/

b) 在 XCode 项目中的 .xib 文件上右键单击并执行“获取信息”,并将其类型修改为“file.xib”而不是“sourcecode.xib”。如果没有第二次更改,它将无法加载!离奇。但这最终是问题所在!!

关于ios - 从另一个 UIViewController 中呈现一个 UIViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10342889/

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