1

Xamarin.IOS/Monotouch 中的以下情况适用:

  • 我正在使用两个视图控制器,VCOne 和 VCTwo,并在 XCode 的 Storyboard 编辑器中为它们分配了两个自定义类(MYVCOneClass 和 MyVCTwoClass)。
  • 然后,我将一个 segue 从 VCOne(从左侧列表中的 viewcontroller)拖到编辑器部分的 VCtwo viewcontroller 实例并选择“Push”。
  • 我将 segue 命名为“OneToTwoSegue”。

我的问题

当我从 VCOne 类中的按钮单击事件处理程序执行以下调用时:

this.performSegue("OneToTwoSegue", this);

我收到一个运行时错误,指出在 MyVCOneClass 对象上找不到 OneToTwoSegue。

有谁知道为什么我不能从这样的代码中调用这个 segue?我知道当我将它们链接到单元格、按钮等时,我已经看到了 segues 工作......

4

1 回答 1

5

如果您正在执行“推送”转场,您的第一个视图控制器需要是 UINavigationController 的根视图控制器。

因此,在您的故事板中,拖放一个 UINavigationController,删除默认附加的 tableview 和 ViewController,然后使 VCOne 成为根视图控制器(与制作 segue 的方式相同 - 按住控件并从 UINavigationController 拖动到 UIViewController然后单击根视图控制器。

之后您的 Segue 应该可以正常工作。只需确保将 UINavigationController 设置为第一个屏幕(指向左侧的小箭头应从 VCOne 移动到 UINavigationController)

编辑:我已经上传了我创建的示例故事板的屏幕截图,以向您展示这一点。VCOne 是 Navigation Controller 的根视图控制器。并且有一个从 VCOne 到 VCTwo 的 segue,称为 OneToTwoSegue。有了这个,您的按钮点击代码将完美运行。 转场故事板

于 2013-06-24T11:53:28.870 回答