2011-03-12 64 views
4

我寫了一個iPhone應用程序。然後,我改變了一下接口,添加了更高分辨率的圖像,並製作了它的iPad版本。在一個完美的世界中,我希望任何購買iPad版本的人免費獲得iPhone版本(儘管不是相反)。由於蘋果似乎沒有辦法做到這一點(對嗎?),我下一個最喜歡的解決方案是讓iPad版本以某種方式包含iPhone版本。是否有一種將iPhone和iPad應用程序合併到通用應用程序的全局方式?

我知道我可以將iPad版本轉換爲「普遍」,但由於應用程序的面貌如此不同,這似乎是一個真正的痛苦。我有很多視圖控制器,它們在兩個版本之間幾乎完全不同。有些方法是相同的,但只有大約30%。有沒有沿着這一行簡單的解決辦法:

  • 檢查設備是iPhone或iPad

    • 如果iPhone,然後用一組文件的

    • 如果iPad上,然後使用不同的文件組

提前致謝!

回答

2

嘗試在Xcode中創建一個新項目,並選擇使其成爲通用應用程序。按照Xcode的默認方式,iPad和iPhone版本之間有明顯的分歧。您可以根據需要將應用的兩個版本設置爲相似或不同。

此外,您可以使用UI_USER_INTERFACE_IDIOM()在運行時檢查運行的設備。目前這兩個值是UIUserInterfaceIdiomPadUIUserInterfaceIdiomPhone

+0

我想這樣我只需要複製所有我的文件與正確的追加標記。這個障礙是我必須重做IB中所有該死的連接。我想這是以編程方式做所有事情的一個論據。謝謝! – PengOne 2011-03-12 13:53:46

0

您描述的「簡單解決方案」基本上是iOS加載通用應用程序的方式。

沒有其他真正的解決方法。你必須再次將你的兩個項目合併爲一個,才能做到你想要的。

第一個問題是一些(很多?)類的名稱在兩個項目之間是通用的。通過使用Xcode中的「Refactor ...」功能,您可以節省自己的一些痛苦,從而在將它們合併在一起之前,在一個項目中更改類的名稱(例如,您的iPhone應用程序,因爲它比較舊)。第二個問題將是你的Info.plist;您需要確保將正確的「主筆尖文件基本名稱」,正確支持的界面方向,圖標文件等分別設置爲iPad和iPhone的正確值。

相關問題