通用 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的主要内容,如果未能解决你的问题,请参考以下文章

通用 DAO - “永远不要完全通用!”

C++ 中是不是有通用睡眠和通用暂停命令?

怎样写一个通用的JDBC查询方法

通用传递类型列表以用于通用方法[重复]

通用无状态组件 React 的类型?或在打字稿中扩展通用函数接口以具有进一步的通用性?

怎样选择通用计数器?