ios如何通过一个viewcontroller使用多个nib控件

时间:2013-01-17 05:06:15

标签: iphone ios ipad uiviewcontroller nib

我正在构建一个支持iOS 5.1.X和6.X的通用应用程序。但我有一个问题要你们。在iOS 5.1.X自动布局不支持,我认为有一个解决方案有3个笔尖1)ipad 2)iphone视网膜而不是视网膜3)iphone 5.我之所以认为使用3个笔尖的原因之一是因为加载它有图形和动画,但我不确定它将是最好的解决方案。我想知道您对这种方法的看法或对不同解决方案的建议。

3 个答案:

答案 0 :(得分:0)

不要让AutoLayout强迫你进入这样的角落。你必须记住:XIB中的布局绝不是绝对的。您可以选择在-viewDidLoad中编写布局代码,(或者更好,-layoutSubviews),通过一些创造性的数学运算,您甚至可以将应用程序缩减为一个通用XIB,并使用适当的布局代码你的视图控制器。

如果视频控制器实际上是通用的,那么您的应用程序永远不必具有超过2个XIB(并且iPad版本和类似Pod的设备版本足以保证单独的布局或设计)。

答案 1 :(得分:0)

您可以按照以下方式执行

首先确定设备iphone还是ipad

int iphone =0;

 if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
     iphone = 0;
}
else
{
     iphone = 1;
}


NSString* nibName;

if(iphone == 0)
{
     nibName = @"SettingsiPadView";
}
else
{
    nibName = @"SettingsiPadView";
}

Settings* setObj = [[Settings alloc]initWithNibName:nibName bundle:nil];
[self.navigationController pushViewController:setObj animated:YES];

答案 2 :(得分:0)

加载三个笔尖不是问题。想象一下,您正在构建一个通用应用程序。现在,如果你尝试使用相同的nib文件冷杉ipad和iPhone,那么它就是一个大错。你的ui所有的搞砸了搞砸了。但对于视网膜和非视网膜,你可以使用1x和2x图像,这样你就可以使用相同的nib文件。但如果你真的想在这里使用3个nib文件,我会说使用1x和2x图像