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

Objective - C 如何使用 View Controller iphone 管理多个视图

Objective C 为父视图设置阴影

在 Objective C 中使用自动布局分离纵向和横向视图