iPhone 多视图和 iPad 单视图都共享一个视图控制器

Posted

技术标签:

【中文标题】iPhone 多视图和 iPad 单视图都共享一个视图控制器【英文标题】:iPhone multiple views with iPad single view both sharing a view controller 【发布时间】:2012-09-07 13:39:18 【问题描述】:

我有一个正在开发的应用程序,并且在用户注册期间我输入了大量数据。在 ipad 版本的应用程序上,这非常简单,因为所有数据输入字段都可以在一个屏幕上显示。但是在 iphone 版本上,这看起来不那么干净,我想在 2 个屏幕上打破它。这可能需要在 XIB 之间切换。所以我的问题是我可以使用单个视图控制器并将 2 个 XIB 视为单个视图吗?这样,我可以为这个屏幕的 ipad 和 iphone 版本共享一个视图控制器,并将所有业务逻辑都放在一个视图控制器中。

【问题讨论】:

【参考方案1】:

是的,您可以,当然前提是您的 XIB 与您的控制器兼容(例如,您的 XIB 不依赖于您的控制器未实现的属性)。我在没有两页拆分要求的情况下成功地做到了这一点,但没有只有一个控制器类:我还对这个控制器进行了子类化(一个用于 iPhone 的子类,一个用于 iPad),以便将少量特定于设备的逻辑保留在它自己的类。

对于页面拆分,我想如果您有一个单独的模型对象,那么您可以有两个控制器实例,一个用于每个页面的 XIB,并让它们根据您的需要处理相同的数据。

【讨论】:

以上是关于iPhone 多视图和 iPad 单视图都共享一个视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

适用于 iPhone 和 iPad 的单笔尖

单视图应用程序中的 iOS iPad tableView [关闭]

最佳实践:将大小类用于单表视图到双表视图

UITableView 在 iPhone 和 iPad 上有不同的选择行为

iPad 应用程序未列在多任务拆分视图列表中

视图在 ipad 上向上移动,但并非每个控件都在 iphone 上移动