【问题标题】:How to start a project with both outputs iPhone & iPad?如何启动一个同时输出 iPhone 和 iPad 的项目?
【发布时间】:2011-02-09 02:54:05
【问题描述】:

使用 Pre Release Xcode 3.2.3 我将其作为一个启动项目


(来源:balexandre.com

我应该选择/做什么来完成一个可以同时使用 iPad 和 iPhone 作为目标的项目(不是在 iPad 上显示 iPhone 应用,而是一个真实的 iPad 视图)?

谢谢。


为了避免问题:

  • iPhone OS 3.1.3 是 iPhone 上的最新版本
  • iPhone OS 3.2 是 iPad 上的最新版本

我的问题不违反我和 Apple 必须遵守的任何协议,因为我的问题是关于那些已经公开的版本。

我只是说在我的操作系统上我运行的是 Xcode 3.2.3,仅此而已。

【问题讨论】:

  • 该信息受 Apple 的 NDA 保护。你不应该就它提出公开问题,这里的任何人也不能合法地回答有关它的问题。
  • @Claus,运行 iPad 和 iPhone 是 PUBLIC,因为您已经可以使用 iPhone 3.1.3 和 iPad 3.2 做到这一点,我刚刚声明我的 XCode 是 3.2.3 版本!正如 KennyTM 所说,3.2 已向公众发布(它是 iPad 操作系统)!!!
  • Xcode 的最新公开版本是 3.2.2,预发布的 Xcode 3.2.3 不公开
  • 无论 XCode 是什么版本,问题在于通用输出,而不是这个 XCode 比其他 XCode 更多/更好!

标签: iphone xcode ipad project


【解决方案1】:

刚刚发现了一个简单的方法:

alt text http://www.balexandre.com/temp/2010-04-17_1242.png

alt text http://www.balexandre.com/temp/2010-04-17_1241.png

然后,如果您想为每个设备切换到 XIB 文件,假设 iPhone 的 MainView 是 A,iPad 的 MainView 是 B,在您的 AppDelegate 中添加:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // The default have the line below, let us comment it
    //MainViewController *aController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil];

    // Our main controller
    MainViewController *aController = nil;

    // Is this OS 3.2.0+ ?
    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
            // It's an iPad, let's set the MainView to our MainView-iPad
        aController = [[MainViewController alloc] 
                              initWithNibName:@"MainView-iPad" bundle:nil];
    else 
            // This is a 3.2.0+ but not an iPad (for future, when iPhone runs with same OS than iPad)
        aController = [[MainViewController alloc] 
                              initWithNibName:@"MainView" bundle:nil];

    #else
        // It's an iPhone (OS < 3.2.0)
        aController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil];
    #endif

    // Let's continue our default code 
    self.mainViewController = aController;
    [aController release];

    mainViewController.view.frame = [UIScreen mainScreen].applicationFrame;
    [window addSubview:[mainViewController view]];
    [window makeKeyAndVisible];

    return YES;
}

【讨论】:

  • 你不需要那个#if __IPHONE_OS_VERSION_MAX_ALLOWED &gt;= 30200 废话。只要您使用 Base SDK 3.2,UI_USER_INTERFACE_IDIOM() 就可以在 3.2 之前的设备上正常工作
【解决方案2】:

您可以选择应用程序类型为“通用”。

【讨论】:

  • 如果你仔细看看这个问题,更多的是如何将现有的 iPhone 应用升级为通用应用。
  • 对不起我的错误。我会和你一起去的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 2012-11-13
  • 1970-01-01
  • 2011-06-23
  • 2012-11-30
  • 1970-01-01
  • 2012-05-06
相关资源
最近更新 更多