-1

我使用故事板创建了一个应用程序。有两个视图控制器第一个视图或初始视图是 UnifeyeMobileViewController,第二个视图控制器称为 SecondViewController。两者都通过导航视图控制器内的 segue 连接。SecondViewController 有两个按钮。在 secondViewController 内第一个按钮的 IBAction 上,我正在尝试运行以下代码。

我正在尝试在以前版本的 xcode 中使用现有应用程序中的以下代码,我们使用 XIB 而不是情节提要,但以下代码不适用于情节提要,它会在 presentModelViewController 语句中生成错误消息。

UnifeyeMobileHelloWorld* unifeyeMobileViewController = [[UnifeyeMobileHelloWorld alloc] initWithNibName:@"UnifeyeMobileViewController" bundle:nil];
unifeyeMobileViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[viewController presentModalViewController:unifeyeMobileViewController animated:YES];
[unifeyeMobileViewController release];

UnifeyeMobileHelloWorld 是我在这里以编程方式生成的视图控制器。从文件->新建->文件->UIViewController的objective C类子类中导入UIController类。将此文件命名为UnifeyeMobileHelloWorld。并在实现文件中添加功能。

4

2 回答 2

0

所以你想创建一个从第二个视图控制器到第一个的模态segue?只有一个 segue 会更有意义,从第一个 (UnifeyeMobileHelloWorld) 到第二个的模态。然后当有人点击你想把他们送回去的按钮时,你可以打电话

[self dismissModalViewControllerAnimated:YES];//如果你愿意,也可以不

不确定这是否适合您应用程序的其余设计,如果您在第二个视图之后有更多视图,请将其设置为从 UnifeyeMobileHelloWorld 到第二个的推送序列,顶部的导航栏将有一个后退按钮自动地。

于 2012-07-13T23:27:02.457 回答
0

编辑:无操作方法:

您在上面的评论中粘贴的错误表明问题实际上出在其他地方。您按下的按钮配置为使用 selector: 向 SecondViewController 发送消息btnHelloWorld:,而 SecondViewController没有该 selector 的方法。如果您重命名方法并且不将故事板中的按钮重新连接到新方法,则可能会发生这种情况。所以打开情节提要,然后从按钮重新ctrl-拖动到SecondViewController中适当的动作方法。

原答案:

看来(通过我们上面的对话),您需要复制 XIB 文件,或者将 XIB 的内容移动到您的故事板并使用更现代的过渡技术(即拖放 segue 过渡)。

要按照您尝试的方式使用视图控制器,它需要 3 个文件:

  1. .h
  2. 他们
  3. .xib(或 .nib)

您的情况似乎缺少#3。需要它来布局 ViewController 的子视图并初始化它们的连接,至少,因为您正在调用“initWithNibName:”,它需要一个 *ib 文件

于 2012-07-13T23:34:37.647 回答