新的View Controller总是有两个笔尖(iPhone和iPad)

时间:2013-02-05 17:49:15

标签: iphone ios objective-c xcode ipad

为通用应用程序xibs自定义xcode,这样当我创建一个像VideoVC这样的新ViewController时,它必须为它创建两个nib文件,如

  • VideoVC_iPhone

  • VideoVC_iPad

有人可以帮助我吗?没有准则。只是步骤。感谢

4 个答案:

答案 0 :(得分:3)

您将在“/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode”中看到templates文件夹 在这里,您将看到可以编辑的文件和项目模板,或者如果您愿意,可以创建一个新模板。

根据您的问题,导航到此文件夹“/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates”

在这里,您可以通过在带有笔尖的视图控制器的模板中添加iPad的空白笔尖来实现您要做的工作。我上传了一个我做的样本,它仍在进行中,但它会根据需要创建2个笔尖。

[my custom template]
http://www.saplogix.net/Xcode_Custom_Template/TwoNibTemplate.zip
extract and copy that inside this folder "~/Library/Developer/Xcode/Templates/File Templates"

Note: create the directory if it's not already there.

Todo:添加代码以根据设备加载特定的nib,这也只是需要添加它。它也只适用于UIViewController作为超类。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    }
    else
        if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
        {
            NSString *_nibBundleOrNil = (NSString *)(nibBundleOrNil != nil ? [nibNameOrNil stringByAppendingString:@"_iPad"] : [NSStringFromClass([self class]) stringByAppendingString:@"_iPad"]);
            self = [super initWithNibName:_nibBundleOrNil bundle:nibBundleOrNil];
        }

    if (self)
    {
        // Custom initialization
    }
    return self;
}

我的模板将生成以下条目,您可以使用它创建带有2个笔尖的控制器。 My template will produce the following entry u can use that to create controller with 2 nibs.

答案 1 :(得分:2)

您可以创建自定义视图控制器模板来执行此操作。创建新文件模板比创建新项目模板更容易,因此完全可以做到。

我刚才发表了一篇演讲 - the slides可能有用。

答案 2 :(得分:2)

创建一个具有以下命名约定的viewcontroller,将iphone / ipad xib创建为"viewcontrollername~iPhone.xib"@"viewcontrollername~iPad.xib"

以及链接状态相同,提供了在viewcontroller.h和viewcontroller.m中区分ipad和iphone的方法

http://iphonedevelopment.blogspot.de/2010/04/converting-iphone-apps-to-universal.html

答案 3 :(得分:-3)

在创建新的Xcode项目时,选择Single View Application,在选项页面的Devices下拉列表中选择Universal。这将创建iPhone和iPad笔尖。

从开始到结束:

档案 - >新项目

选择单一视图应用程序 - >下一步

设备 - >通用