0

我是全新的iphone,我正在尝试创建一个通用应用程序。

现在我正在创建一个空应用程序。根据所有教程,通过检查universal选项,它应该appdelegates为 iphone 和 ipad 自动创建。

但我能看到的只是one appdelegate。请告诉我如何创建两者。

此致

4

2 回答 2

3

你真的应该只为通用应用程序使用一个 AppDelegate。您可以使用它来分享您将在那里做的常见事情。您究竟需要多个 AppDelegate 做什么?如果您需要执行特定于设备类型(即 iPhone 或 iPad)的操作,则可以执行如下三元表达式:

(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) ?NSLog(@"iPad") : NSLog(@"iPhone");

于 2012-08-21T18:43:52.393 回答
3

Brayden 正确地回答了您几乎不需要多个应用程序代表。委托通常所做的只是处理应用程序启动、暂停或终止的时刻。在 iPhone 运行 iOS 4.0 和 iPad 运行 iOS 3.2 的时代,您可能需要在委托中使用非常不同的代码,因为只有 iOS 4.0 支持多任务处理。那些日子已经一去不复返了,您的代表可能应该在所有设备上采取相同的行动。

是的,您有时确实会达到您的程序在 iPhone 和 iPad 上的行为必须不同的地步。查当时的成语并没有更早。否则,您只是在毫无目的地复制代码。

我最近的应用程序几乎不包含针对 iPhone 或 iPad 的特殊检查。它甚至不使用不同的 XIB。相反,我的自定义视图实现layoutSubviews填充可用空间。

也就是说,一旦您了解了应用程序代表,也许您会发现需要它们与众不同的情况。如果您绝对确定您的 iPhone 和 iPad 行为会大相径庭,您将需要:

  1. 手动新建类(最好继承现有AppDelegate类)
  2. 在您的中,根据习语main.m将您的新代表的类名发送到。UIApplicationMain

请参阅“我可以在我的项目中创建 App Delegate 文件吗?”的答案。查看对 的更改main.m

于 2012-08-22T00:38:10.273 回答