iphone - 迁移到通用应用程序 (iPhone/iPad)

标签 iphone ios xcode ipad

我有一个旧的 iPhone 应用程序,现在想将它迁移到 iPad 应用程序...
所以我有 1 个带有一些 UIWebView 和 iAd View 的 XIB...

如何将其转换为通用应用程序...我只将设备更改为通用...我的意思是只会添加一个新的 xib 说 DetailController-ipad.xib 工作,即对于 iPad,它会自动接受它?

实际上在我的代码中,我有;

DetailController *detailController = [[DetailController alloc] initWithNibName:@"DetailController" bundle:nil];

那么相同的旧 DetailController.xib 不会总是被推送吗?

我需要做哪些改变?

请帮忙。

最佳答案

在加载 nib 时,询问系统您正在运行的设备类型,然后加载适当的 nib 文件。使用这样的东西:

DetailController *detailController;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    detailController = [[DetailController alloc] initWithNibName:@"DetailController" bundle:nil];
} else {
    detailController = [[DetailController alloc] initWithNibName:@"DetailController-ipad" bundle:nil];
}

您可能还想在不同的界面习惯中对细节 View Controller 做一些不同的事情,例如将 View Controller 放在 UINavigationController 中。在 iPhone 上和 UISplitViewController在 iPad 上。

另一种选择是拥有一个单独的 DetailController iPhone 和 iPad 的实现。您的界面在两种界面习惯用法中可能非常相似,并且一个 DetailController 会更好。或者,您的应用程序的 iPhone 和 iPad 版本的界面可能有很大不同,其中 iPhoneDetailControlleriPadDetailController会更有意义。例如,较小的 iPhone 屏幕可能需要使用 UINavigationController,但较大的 iPad 屏幕可以在一个屏幕上包含整个界面。

编辑回复评论:

Xcode 的 Interface Builder 部分在创建 .xib 文件时设置界面惯用语,阻止将 .xib 从 iPhone 格式转换为 iPad 格式。为 iPad .xib 创建一个新的接口(interface)文件。您可以将元素从 iPhone .xib 复制并粘贴到 iPad .xib,然后重新连接 socket 并调整大小和位置。

关于iphone - 迁移到通用应用程序 (iPhone/iPad),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8329986/

相关文章:

ios - 当表格 View 向上滚动时,表格 View 第一部分(第 0 部分)没有向上移动

iphone - 检测IOS设备类型

ios - iOS 上的蓝牙诊断日志

ios - 如何使用 RxSwift 让 ViewController 观察 ViewModel 变量(Variable<..>)的任何变化?

ios - NSLayoutConstraint "Unable to simultaneously satisfy constraints"错误以及如何解释它们

iphone - 在 App Purchase 沙箱问题

ios - 点击对焦但曝光不起作用

ios - Xcode : Programmatically created buttons appear on simulator, 但不在实际手机上

arrays - 永久数据并为 Segue 做准备

ios - Facebook 登录 : iOS/Swift - Click button twice