2013-12-15 26 views
0

我已閱讀了很多有關從iPhone應用程序製作通用應用程序的信息。 但我沒有發現任何關於我的情況: 我的應用程序的一部分內置於Storyboard中,但很少有視圖在.xib-s中創建。 如何連接它並在其中創建通用應用程序?在iOS上製作通用應用程序

+0

你能更具體嗎?創建通用應用程序時,您經常(但不總是)爲iPad和iPhone/iPod Touch使用單獨的故事板和/或.xib文件。您的視圖控制器會根據所運行的設備選擇要加載的視圖。 – Caleb

+0

但我應該在哪裏檢查設備類型?在每個控制器的Init方法中? –

回答

1

我認爲最常見的情況是在實例化視圖控制器之前檢查設備類型。在這一點上,您可以使用適當的筆尖實例化適當的視圖控制器。需要注意的是爲iPad VS iPhone,你可以選擇使用:

  • 不同UIViewControllers(iPad的具體一個和iPhone特定的一個)
  • 相同的UIViewController,但不同的筆尖。
  • 相同的UIViewController具有相同筆尖(使用縮放或自動佈局規模上/下)

可以明顯地跳過設備檢查,如果你使用相同的視圖控制器具有相同筆尖(因爲會沒有代碼差異)。此外,您不需要在代碼中不會在多種設備類型上運行的區域進行設備檢查。例如,只有iPad的視圖控制器內的代碼可以假設iPad並跳過設備檢查。你確定的代碼只能在iPhone上運行,也可以跳過檢查並假設iPhone。完全可以這麼說,儘量不要用這樣的檢查來清理你的代碼。

- (IBAction) handleButtonPress { 

    UIViewController *vc = nil; 

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
     vc = [[MyIPadViewController alloc] initWithNibName:@"MyIPadViewController" bundle:nil]; 
    } else { 
     vc = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]; 
    } 

    [self presentViewController:vc animated:YES completion:NULL]; 
}