3

我听说在 XCode 4.5 中有一些变化,故事板标识符不再称为标识符,而是故事板 ID。我尝试使用它,但它没有启动任何东西。它总是空白。我究竟做错了什么?

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

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

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

或者

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

或者

 [self presentModalViewController:historyVC animated:YES];

有关故事板中的设置,请参见屏幕截图:

在此处输入图像描述

4

1 回答 1

3

这是我在我的应用程序中多次使用的东西,因为这些地方是不切实际的。从上面提供的代码和屏幕截图来看,这是我将其连接起来的方式:

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

如果您从 iPad 上的 popopver 显示视图控制器,这将特别有用。将带有自己导航控制器的视图添加到情节提要:

在此处输入图像描述

请注意,导航控制器的左侧没有转场。以下代码在弹出窗口中显示:

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

然后,您可以将其用作通过 segue 将其他视图控制器推送到导航控制器的基础(注意视图控制器右侧的那个):

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

希望有帮助。

于 2013-02-22T13:14:07.657 回答