在所有基础知识中,我想要拥有iPhone的视图和iPad的视图。但是,我想为它们使用相同的视图控制器,因为它们是相同的,只是针对每个设备进行了优化。
我知道可以这样做,因为它是一个通用应用程序,通用项目的默认视图包括iPhone的一个主视图和iPad的一个主视图。但是,它们是自动实现的,因此我不知道如何复制它。
所以,这个问题的主旨是:你如何将两个xib连接到一个viewcontroller?
谢谢,
答案 0 :(得分:9)
..无论你在哪里批评新视图..喜欢这个
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
{
self.MainView = [[[YOurViewController alloc] initWithNibName:@"YOurViewController_iPad" bundle:nil]autorelease];
}
else
{
self.MainView = [[[YOurViewController alloc] initWithNibName:@"YOurViewController_iPhone" bundle:nil]autorelease];
}
您必须用您的笔名替换笔尖名称和类名。
高于此... 更重要的一步是进入每个xib文件 ..点击文件所有者 ..并在i * 牙齿检查员 *(右上角的图标)..确保它是类YOurViewController
答案 1 :(得分:0)
首先,当您加载视图时,可能需要检查它是什么设备。如果iPhone xib1
另有xib2
。重新考虑如何加载xib本身。它是好的。如果您想在UIViewController
中更改视图,只需使用以下代码:
NSArray *nibObjs = [[NSBundle mainBundle] loadNibNamed:@"xib2" owner:self options:nil];
UIView *aView = [nibObjs objectAtIndex:0];
self.view = aView;
答案 2 :(得分:0)
来自代码:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
videosController = [[SoftLensAdvanceSearch alloc] initWithNibName:@"VideosController_ipad" bundle:nil];
}
else{//iphone
videosController = [[SoftLensAdvanceSearch alloc] initWithNibName:@"VideosController" bundle:nil];
}
来自IB
创建2个不同版本的“xib”文件,并指定“文件名”(xcode 4.3+中属性窗口中的第1组),即,为iphone添加iphone文件名,为ipad添加ipad文件名。< / p>
答案 3 :(得分:0)
但丁回答了我的问题。 “在上面......更重要的一步是进入每个xib文件..点击文件所有者(左栏)..和i *牙齿检查员*(右上角的图标)..确保它属于YOurViewController类
但我会补充说,将所有按钮设置在一个笔尖中。然后放置它们,但不要像在助手视图中那样连接它们。而是右键单击左栏中的“文件所有者”,您将看到一个完整的按钮和插座表,可以连接到新笔尖中的对象。
希望这有帮助。