Objective C / IOS5 - 根视图 - 从空应用程序模板构建 (XCODE)
Posted
技术标签:
【中文标题】Objective C / IOS5 - 根视图 - 从空应用程序模板构建 (XCODE)【英文标题】:Objective C / IOS5 - Root View - Build From Empty Application Template (XCODE) 【发布时间】:2012-06-26 10:41:54 【问题描述】:出于学习目的,我正在尝试从头开始构建“SingleView”应用程序。
几乎 - 我使用“EmptyApp”模板。我这样做是为了了解视图在 iPhone 应用中的实例化方式。
到目前为止,我得到了以下信息:
AppDelegate.h AppDelegate.m StoryBoard(带有一个 ViewController 和一个嵌套视图。viewController 也绑定到我的类 ViewController) ViewController.h ViewController.m我将脚本从“SingleViewApp 模板”复制过来。但是当我测试应用程序时,我的视图仍然没有显示。
看起来我错过了什么。它必须是绑定或类似的东西,因为脚本本身应该是相同的。控制台也给我以下消息:
"应用程序最后应该有一个根视图控制器 应用程序启动”
好的。我如何告诉我的应用,获取我的视图并将其用作根视图?
谢谢各位.... 感谢您的每一次帮助
莫吉奥
【问题讨论】:
applications expected to have a root view controller console的可能重复 【参考方案1】:在您的项目 info.plist 中,您需要指定主情节提要文件
【讨论】:
哦,我的上帝 - 谢谢奥马尔 - 50 秒......!堆栈溢出病了....你们这里真是太棒了!.. 乐于助人 :) 嘿奥马尔......不幸的是它仍然无法正常工作。我还尝试了此页面上提到的其他步骤:( 我仍然收到有关根视图的消息。虽然 ViewController 设置为初始。事实上,它已经无论如何了。将 MainStoryBoard 条目添加到信息中也没有帮助。 好的。我的错!它正在工作!似乎我的 iPhone 出于某种原因正在加载旧版本。再次感谢!【参考方案2】:在您的 AppDelegate 的 didFinishLaunchingWithOption 中,您应该有类似的内容:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
还要检查你的 main.m
retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
你应该设置实现 UIApplicationDelegate 协议的类名,通常是 AppDelegate
@interface AppDelegate : UIResponder
【讨论】:
hmmm...奇怪的是在 SingleView 模板中没有提到此代码...知道为什么吗? 可能是因为你使用的是Storyboard,所以你在使用Storyboard的时候不需要定义这段代码。尝试新建一个SingleView模板,取消选中use storyboard,你会发现这行代码。 好的一个问题。当不使用情节提要时,您可以通过编写脚本而不是绘制它们来对视图和控件进行编程。对吗? 即使不使用 StoryBoard,您仍然可以使用 Interface Builder,这是自添加 StoryBoard 以来的旧技术。创建新文件 > 选中“使用 xib 作为用户界面”【参考方案3】:在情节提要中,您需要将视图控制器设置为“初始视图控制器”。它位于右侧的属性(Attributes Inspector)中。
【讨论】:
【参考方案4】:添加到 Omar Abdelhafith 的答案中:
除了添加属性“主故事板文件基本名称”值之外,还有您的故事板文件名(不带扩展名 .storyboard)。
您需要像这样更改您的 AppDelegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
/*self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];*/
return YES;
【讨论】:
以上是关于Objective C / IOS5 - 根视图 - 从空应用程序模板构建 (XCODE)的主要内容,如果未能解决你的问题,请参考以下文章
Objective c -enumaeratorAtPath:不在根级文件夹中工作
获取根 ViewController - Objective-C
iOS5本地通知自定义声音xcode iOS iPhone Objective-c Xcode