2014-01-07 59 views

回答

4

默認情況下,所有的iPhone的屏幕尺寸將共享相同的故事板。您可以使用自動佈局或自動調整(支柱和彈簧)進行調整,以解決屏幕尺寸的差異。這是首選方式,因爲在製作UI更改時,您不必更新兩個不同的故事板。您還可以在代碼中進行調整,以考慮不同的屏幕尺寸,這對於更復雜的更改有時是必需的。

如果你必須使用一個單獨的故事板,那麼你需要進入你的項目目標,並從它說「主界面」的地方刪除故事板。然後進入您的應用程序委託。在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法,你需要添加類似下面的代碼:

self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; 
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
UIViewController *viewController = [storyboard instantiateInitialViewController]; 
self.window.rootViewController = viewController; 
[self.window makeKeyAndVisible]; 

您可以通過查看UIScreen.mainScreen.bounds檢查屏幕的高度來選擇不同的故事板的線路使用它得到的故事板。

正如我所說,儘管如此,我認爲使用相同的故事板並使用自動佈局等功能來調整屏幕是一個更好的主意。維護起來要容易得多,看起來更乾淨,而且可能不會有問題。

1

我不會推薦這樣做,除非視圖實際上不同(不只是大小不同)。但是,如果你在你的應用程序代理檢查窗口的大小,然後手動加載故事板有可能在這裏問解釋:

Using Multiple Storyboards in iOS

UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"MyStoryboardIdentifier" bundle:nil]; 
UIViewController* myStoryBoardInitialViewController = [storyboard instantiateInitialViewController]; 

[self.navigationController pushViewController:myStoryBoardInitialViewController animated:YES]; 
+0

謝謝,但這段代碼是不正確的:''presentModalViewController:animated:'已棄用:iOS 6.0以前不推薦使用 – Dmitry

+1

我道歉,我複製了錯誤的部分。我已經在上面更新了它。 – lehn0058

相關問題