2011-02-05 65 views
11

我试图制作一款适用于iPhone和iPad的应用程序。我正在寻找如何使两个接口兼容。当应用程序加载时,我正在显示一个表视图。我如何根据设备加载不同的笔尖?我正在使用它在nib之间切换。如何制作iPhone和iPad版本的应用程序?

if ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)]) 
    { 
     if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) 
     { 
      device = @"iPad"; 
     } 
     else 
     { 
      device = @"iPhone"; 
     } 

    } 

但是在MainWindow.xib中,它表示视图是从视图控制器为iPhone加载的。我可以根据设备进行这种动态吗?即我想根据设备从应用程序开始显示不同的笔尖。 谢谢。

回答

6

你可以做,以类似的方式:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ 
    mainMenu = [[MainMenu alloc] initWithNibName:@"MainMenuiPad" bundle:nil]; 
}else{ 
    mainMenu = [[MainMenu alloc] initWithNibName:@"MainMenu" bundle:nil]; 
} 
+0

感谢您的答复。正如我所说的,当我们在界面构建器中打开MainWindow.xib时,它说'视图是从用于iPhone的UI的abc_iPhoneAppViewController'加载的。我怎样才能把它改成iPad。无论是在IB还是通过代码。你能否给一个详细的例子。谢谢 – Nikil 2011-02-05 18:13:46

5

为了使普遍的应用程序,在信息

1套目标家庭建立选项卡的应用程序为iPhone/iPad的。

2-从主窗口删除窗口。

3-为iphone添加两个xib,一个添加到iPad(通过选择iPad xib)。

4-将appDelegate类作为这些xib的控制器文件。

5-在这些xib和视图控制器或导航控制器上添加窗口,并通过IB Inspector设置负载笔尖名称和控制器文件,这里是您的第一个视图。

6-然后为具有tableview或其他控件的iPad和iPhone制作不同的xib。

7-制作单位指示文件或为同一不同设备不同CONTROLER文件你需要这个,如果其他条件检查设备

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ 

8现在,你需要在AppDelegate类加载厦门国际银行在方法
主要笔尖文件的基本名称[NSMainNibFile]:MainWindow_iPhone
didFinishL--

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ 

    // load your nib for iPad here which having view controler or navigation controller as well window. 
}else{ 
    //load nib for iPhone. 
} 
0

Info.plist试试这个主笔尖文件基本名称(iPad)[Main Menu] [NSMainNibFile~ipad]:MainWindow_iPad

我希望这可以帮助你。

27

事实上,苹果这一切都是自动,只是命名您的NIB文件:

MyViewController~iphone.xib // iPhone 
MyViewController~ipad.xib // iPad 

,并用代码量最小加载您的视图控制器:

[[MyViewController alloc] initWithNibName:nil bundle:nil]; // Apple will take care of everything 
+1

+1对我很有帮助 – Jomoos 2012-08-01 06:28:16

相关问题