将两个XIB连接到一个ViewController
我在所有的基础上,想要有一个iPhone的视图,一个iPad。 不过,我想为它们使用相同的视图控制器,因为它们是相同的东西,只是为每个设备进行了优化。
我知道这是可能的,因为它是一个通用的应用程序,通用项目的默认视图包含一个iPhone主视图和一个iPad主视图。 但是,他们自动实现,所以我不知道如何复制这个。
所以,这个问题的答案是:你如何将两个xib连接到一个viewcontroller?
谢谢,
- 可靠的人
在代码..无论你批量新视图..像这样
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]; }
你将不得不用你的名字和class级名称来replace。
在上面… 更重要的一步是进入每个xib文件 ..点击File Owner ..并在我* 牙齿检查器 *(右上angular的图标)..确保它是类YOurViewController
首先,当您加载视图时,您可能需要检查它是什么设备。 如果iPhone xib1
否则xib2
。 修改如何加载xib本身。 它的东西。 当你想在UIViewController
更改视图时,只需使用下面的代码:
NSArray *nibObjs = [[NSBundle mainBundle] loadNibNamed:@"xib2" owner:self options:nil]; UIView *aView = [nibObjs objectAtIndex:0]; self.view = aView;
从代码:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ videosController = [[SoftLensAdvanceSearch alloc] initWithNibName:@"VideosController_ipad" bundle:nil]; } else{//iphone videosController = [[SoftLensAdvanceSearch alloc] initWithNibName:@"VideosController" bundle:nil]; }
从IB
创build2个不同版本的“xib”文件,并指定“文件名”(xcode 4.3+属性窗口中的第一组),即为iphone添加iphone文件名,为ipad添加ipad文件名。
但丁已经回答了我的这个问题。 “在上面…更重要的一步是进入每个xib文件..点击文件所有者(左栏)..并在我*牙齿检查员*(图标在右上angular)..确保它是类YOurViewController“
但是我会补充说把所有的button都放在一个笔尖里。 然后放置它们,但是不要像在辅助视图中一样连接它们。 相反,右键单击左栏中的文件所有者,您将看到一个完整的button和插口表,可以连接到新的Nib中的对象。
希望这可以帮助。