【问题标题】:Migrating to Universal app (iPhone/iPad)迁移到通用应用程序 (iPhone/iPad)
【发布时间】:2012-11-05 23:29:34
【问题描述】:

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

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

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

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

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

我需要做哪些改变?

请帮忙。

【问题讨论】:

标签: iphone ios xcode ipad


【解决方案1】:

在加载 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];
}

您可能还想在不同的界面习惯用法中对细节视图控制器做一些不同的事情,例如将视图控制器放在 iPhone 上的 UINavigationController 和 iPad 上的 UISplitViewController 中。

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

编辑回复评论:

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

【讨论】:

  • 好的..非常感谢...实际上在我的应用程序中,有 2 个 VC; ListController 和 DetailController.... ListController 只有一个表格视图,它会在 iPad 上自动拉伸....这就是原因,我只想更新无法缩放的 DetailController(它有一个 Webview 和 iAd)自动适用于 iPad 尺寸...
  • 我现在唯一的问题是,对于 DetailController-ipad.xib,我应该手动添加/创建它还是可以从现有的 iPhone 视图 (DetailController.xib) 转换它,因为它有只有 Webview 和 iAd....我会在这个新的 ipad.xib 上自动看到网点吗?
【解决方案2】:

如果您以编程方式加载 GUI,让我们使用这些来检查设备是 iPhone 还是 iPad。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
  // The device is an iPad running iPhone 3.2 or later.
  // [load appropriate iPad nib file]
}
else {
  // The device is an iPhone or iPod touch.
  // [load appropriate iPhone nib file]
}

【讨论】:

    【解决方案3】:

    您可以通过编程方式创建 ViewController。只需查询设备的宽度和高度。然后根据这些值放置您的项目。

    【讨论】:

      猜你喜欢
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      相关资源
      最近更新 更多