2011-02-05 63 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

相關問題