2012-10-11 52 views
3

我聽說在XCode 4.5中有一些更改,故事板標識符不再稱爲標識符,而是Storyboard ID。我試圖使用它,但它不啓動任何東西。它始終是空白的。我究竟做錯了什麼?instantiateViewControllerWithIdentifier顯示空白視圖(xcode 4.5)

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil]; 

HistoryViewController* historyVC = [storyboard instantiateViewControllerWithIdentifier:@"histSB"]; 

隨着

[self presentViewController:historyVC animated:YES completion:nil]; 

OR

[self.navigationController pushViewController:historyVC animated:YES]; 

OR

[self presentModalViewController:historyVC animated:YES]; 

看到故事板屏幕截圖設置:

enter image description here

+0

因此除了標準的「MainStoryboard.storyboard」,你還有第二個故事板文件,名爲「Storyboard.storyboard」? – ilmiacs

+0

所以我只有一個......這就是我所說的。 (那是在我意識到有一個關於命名的約定之前,但在這個旁邊,故事板加載正常。) – minjiera

+0

如果你只有一個,那麼你的父VC在同一個SB中定義。在這種情況下,你可以使用'self.storyboard',我一直使用它,沒有問題。如果這也行不通,可能有某事。關於您的VC實施。 – ilmiacs

回答

3

這是我在我的應用程序中使用了幾次,因爲這些地方是不適用的。從上面提供的代碼和屏幕截圖會,這裏就是我想接線起來:

HistoryViewController *historyVC = [self.storyboard instantiateViewControllerWithIdentifier: @"histSB"]; 
[self.navigationController pushViewController: historyVC animated:YES]; 

此,如果你從iPad上的一個popopver顯示您的視圖控制器是非常有用的。擁有自己的導航控制器添加視圖到故事板:

enter image description here

請注意,有沒有SEGUE進來的導航控制器的左側。下面的代碼顯示這在酥料餅:

HistoryViewController *historyVC = [self.storyboard instantiateViewControllerWithIdentifier: @"histSB"]; 
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController: historyVC]; 
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController: navigationController]; 

然後可以使用這個作爲用於經由賽格瑞推動其他視圖控制器到導航控制器的基礎(注意一個到視圖控制器的右側):

[self performSegueWithIdentifier: @"WhateverComesNextSegue" sender: self]; 

希望有所幫助。