2012-03-12 86 views
1

我在所有基础知识中都希望拥有iPhones的视图,以及iPads的视图。但是,我想为它们使用相同的视图控制器,因为它们是相同的,只是针对每个设备进行了优化。将两个XIB连接到一个ViewController

我知道这是可能的,因为它是一个通用的应用程序,通用项目的默认视图包括一个iPhones主视图和一个iPad主视图。但是,它们是自动实现的,所以我不知道如何复制它。

因此,这个问题的焦点是:你如何将两个xib连接到一个viewcontroller?

感谢,

  • 杰克
+0

你已经做了两个不同的xib文件?/ ..你是什么意思的两个意见..你可以解释 – Shubhank 2012-03-12 05:23:36

+0

没问题。我想将两个视图(xibs)连接到同一个视图控制器 – JTApps 2012-03-12 05:35:13

回答

9

在代码..无论你很多新的观点..do这样

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]; 
} 

你将不得不更换笔尖名和与你的类名称..

在上面...一个更重要的一步去厦门国际银行的每个文件 ..click上文件所有者 ..和在i * dentity检查 *(顶部右侧图标)..确保它的class YOurViewController

+0

我知道你说过“无论你在哪里拍摄新视图”,但我有点困惑。例如,是否会在视图控制器中关联两个视图? – JTApps 2012-03-12 05:53:22

0

首先,当您加载视图时,您可能需要检查它是什么设备。如果iPhone xib1另有xib2。关注如何加载xib本身。它很蠢。如果你想改变一个UIViewController意见才刚刚使用此代码:

NSArray *nibObjs = [[NSBundle mainBundle] loadNibNamed:@"xib2" owner:self options:nil]; 
UIView *aView = [nibObjs objectAtIndex:0]; 
self.view = aView; 
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个不同版本的 “厦门国际银行” 的文件并指定“文件名”(xcode 4.3+属性窗口中的第一组),即为iphone添加iphone文件名,为ipad添加ipad文件名。

0

但丁已经回答了我与此有关的问题。 “在此之上......更重要的一步是进入每个xib文件..点击文件所有者(左栏)..并在我*牙齿检查员*(右上角的图标)..确保它是类YOurViewController“

但我会添加,将所有的按钮设置在一个笔尖。然后放置它们,但不要按照与辅助视图相同的方式将它们连接起来。相反,右键单击左栏中的文件所有者,您会看到一个完整的按钮和插口表,可以连接到新Nib中的对象。

希望这会有所帮助。

相关问题