instantiateViewControllerWithIdentifier显示空白视图(xcode 4.5)

问题描述:

我听说在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

这是我在我的应用程序中使用了几次,因为这些地方是不适用的。从上面提供的代码和屏幕截图会,这里就是我想接线起来:

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]; 

希望有所帮助。