通用 UIViewController
Posted
技术标签:
【中文标题】通用 UIViewController【英文标题】:Universal UIViewController 【发布时间】:2012-10-11 09:15:30 【问题描述】:请帮助我,我从来没有用 xib 为 iPhone/iPad 制作s。如何使用 .m 和 .h 文件以及 _iphone.xib 和 _ipad.xib 创建类?
我尝试手动创建 xib 并为视图创建出口,但在推送此控制器后,我遇到了未捕获的错误:
* 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:'-[UIViewController _loadViewFromNibNamed:bundle:] 加载了“FullNewsViewController”笔尖,但未设置视图出口。
谢谢!
【问题讨论】:
【参考方案1】:问题,我从您发布的错误中可以看出,您没有正确设置 NIB 的所有者属性。
您的 nib 文件似乎没有正确的文件所有者,因此无法在视图控制器上设置视图。
打开笔尖,然后转到屏幕左侧的File's Owner
。将 Custom Class 属性设置为 viewController 的类。
再次右键单击File's Owner
并将视图属性拖到您的视图中。
【讨论】:
【参考方案2】:您应该遵循 Apple ios 应用程序编程指南
Creating a Universal App
在这里您将获得一些技巧,如何创建通用应用程序。
希望对你有所帮助。
【讨论】:
【参考方案3】:查看此链接可能会对您有所帮助...
http://elusiveapps.com/blog/2011/10/converting-iphone-apps-to-univeral-ipad/
如果视图控制器可以很容易地用于两者......
MyViewController.h
MyViewController.m
MyViewController~ipad.xib
MyViewController~iphone.xib
将两个 xib 文件中的 File's Owner 设置为您的 UIViewController 子类,并连接视图 + 您想要连接的任何其他内容。
当我初始化我的视图控制器时,这就是所有需要的
MyViewController *viewController = [[MyViewController alloc] init];
// OR
MyViewController *viewController = [[MyViewController alloc] initWithNibName:nil bundle:nil];
The Apple docs for UIViewController state 如果您提供与视图控制器同名的 xib,它将被加载。 ~ipad 和 ~iphone 确保加载了正确的 xib。
【讨论】:
以上是关于通用 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章