我正在將iPhone應用程序轉換爲通用應用程序。iPhone應用程序轉換爲iPad應用程序顯示iPhone xib不是iPad xib
- 我已經改變了所有的Xcode的設置,並增加了新的主窗口,iPad.xib
- 我已經迷上所有的接口生成器引用了(如主窗口,iPad的到合適的iPad類的viewController,窗等)
我添加了一個新的iPad類的打開視圖控制器和我AppDelegate.h文件中聲明它,在我AppDelegate.m文件合成它們:
的UIWindow *窗口; UIWindow * windowiPad; AppViewController * viewController; AppViewControlleriPad * viewControlleriPad;
- 在應用程序委託我檢查這些設備我運行和加載相應的類
:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { // Override point for customization after application launch. navController = [[UINavigationController alloc] initWithRootViewController:viewControlleriPad]; // Add the view controller's view to the window and display. [windowiPad addSubview:navController.view]; [windowiPad makeKeyAndVisible]; [navController setNavigationBarHidden:YES animated:NO]; } else { //I am an iPhone! // Override point for customization after application launch. navController = [[UINavigationController alloc] initWithRootViewController:viewController]; // Add the view controller's view to the window and display. [window addSubview:navController.view]; [window makeKeyAndVisible]; [navController setNavigationBarHidden:YES animated:NO]; }
,一切似乎很好地工作 - 但它仍加載iPhone筆尖/ xib文件AppViewController.xib而不是AppViewControlleriPad.xib。歡迎您提出更多信息,但我無法弄清楚如何在運行iPad而不是iPhone /原始xib文件時加載AppViewControlleriPad.xib。
我想,也許天真地說,如果xib文件與視圖控制器的類名稱相同,那麼ViewController會將其用作其xib。
我該如何解決這個問題,以便爲正確的設備加載正確的xib?
如果您從頭開始創建通用應用程序,則後綴實際上是_iPhone和_iPad。 – 2012-03-07 14:51:52
是的,但通用應用程序模板中的後綴不是「真正的後綴」 - 它們僅用於在初始化應用程序委託中的視圖控制器時通過名稱手動選擇正確的資源文件。根據文件https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/Introduction/Introduction.html「〜ipad」和「〜iphone」後綴對於自動識別是正確的,而不檢查是否(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad) – 2012-03-07 15:42:21
哇,tnx這個信息。我生活在錯誤的信念中。 +1 – 2012-03-07 15:46:18