使 Apple 提供的 Page Control 示例符合 iOS5 SDK 时缺少根视图控制器
Posted
技术标签:
【中文标题】使 Apple 提供的 Page Control 示例符合 iOS5 SDK 时缺少根视图控制器【英文标题】:Root view controller missing while making the Apple offered Page Control example to conform iOS5 SDK 【发布时间】:2012-03-04 19:13:54 【问题描述】:我是ios开发的新手,所以我的问题可能有点幼稚。
我正在使用滚动视图来实现一个页面控件,该页面控件嵌入了多个子视图,并且可以滑动以更改子视图出现在屏幕上。当我浏览 iOS 开发库时,发现有一个 Apple 提供的 Page Control 示例,它是在 iOS4 上编写的,可以用于工作。我下载了它并尝试让它在我的项目上运行,该项目旨在在带有 iOS5 的 iPhone 上运行,但失败了。
项目在 iOS 模拟器上运行后控制台总是说“应用程序在应用程序启动结束时应该有一个根视图控制器”。因此,我检查了网络上几乎所有的解决方案,但都没有成功。
这是 Apple 提供的页面控制示例页面:https://developer.apple.com/library/ios/#samplecode/PageControl/Introduction/Intro.html
我已经将我的工作拆分成一个最小的项目并将其推送到 GitHub 上。这是页面: https://github.com/WeZZard/PageControl
谁能帮帮我?
【问题讨论】:
我已经解决了这个问题。从根视图控制器实现文件中删除 - (UIView *)view 方法将得到解决。似乎根视图控制器的 -(UIView *)view 方法在此文件中实现后返回错误值,这将导致情节提要的初始化出错...... 【参考方案1】:想一想,如果您使用故事板,请确保在您的第一个视图控制器上勾选“是初始视图控制器”。
【讨论】:
谢谢。但我想我只是勾选了这个选项。让我感到困惑的是,如果我让一个项目仅在指定一个空视图控制器的情况下运行,控制台不会报告任何错误。我从默认勾选“是初始视图控制器”的单个视图模板创建所有项目。【参考方案2】:在示例代码 appdelgate.m 文件中
- (void)applicationDidFinishLaunching:(UIApplication *)application
NSString *nibTitle = @"PadContent";
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
nibTitle = @"PhoneContent";
[[NSBundle mainBundle] loadNibNamed:nibTitle owner:self options:nil];
[self.window addSubview:self.contentController.view];
[window makeKeyAndVisible];
您在这里看到一个正在为不同的设备加载不同的 nib(iPad 和 iPhone)。
通常在你看到的项目中
[self.window addSubview:self.rootviewcontroller.view];
但唯一的区别是
[self.window addSubview:self.contentController.view];
它正在使用当前笔尖加载笔尖..([[NSBundle mainBundle] loadNibNamed:nibTitle owner:self options:nil];)
所以该项目与任何其他项目相同
【讨论】:
我没有完全复制示例代码中的所有代码,尤其是 -(void)applicationDidFinishLaunching: 方法,因为我想使用情节提要来管理我的视图控制器和视图层次结构,而不是 Nib 文件。我的观点是 [self.window addSubview:self.rootViewController.view] 或 self.window.rootViewController = self.rootViewController 是解决一些问题的关键,这些问题也被称为根视图控制器缺失,通过在网络上检查解决方案但它对我的不起作用...很奇怪...它也可能发生在某些iOS4-app-upgrade-to-iOS5-app案例中。以上是关于使 Apple 提供的 Page Control 示例符合 iOS5 SDK 时缺少根视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
Tkinter中的多个键事件绑定 - “Control + E”“Command(apple)+ E”等
《iOS Human Interface Guidelines》——Page Control
图像尺寸不适用于 Page Control 和 ScrollView?
XMLHttpRequest 无法加载 https://sandbox.itunes.apple.com/verifyReceipt。 Access-Control-Allow-Origin 不允许来