为通用应用程序xibs自定义xcode,这样当我创建一个像VideoVC这样的新ViewController时,它必须为它创建两个nib文件,如
VideoVC_iPhone
VideoVC_iPad
有人可以帮助我吗?没有准则。只是步骤。感谢
答案 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个笔尖的控制器。
答案 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笔尖。
从开始到结束:
档案 - >新项目
选择单一视图应用程序 - >下一步
设备 - >通用