【问题标题】:Segue to UIViewController from a xib从 xib 转到 UIViewController
【发布时间】:2014-03-26 12:20:50
【问题描述】:

我有一个自定义 UIView,它是一个 xib 文件,然后是一个控制该视图的类。我还有一个故事板,里面有很多不同的视图控制器。如何执行从 UIView 到情节提要内的特定 UIViewController 的转场?

谢谢

【问题讨论】:

  • 不要忘记标记最佳答案并支持任何解决您问题的答案。其他面临同样问题的人会想知道是什么解决了您的问题,以及那些花时间提供帮助的人应该得到代表点

标签: ios uiview uistoryboard segue uistoryboardsegue


【解决方案1】:

你不能那样做。您可以使用界面构建器右侧的菜单为UIViewController 提供故事板 ID。

然后以编程方式调用它,如下所示:

MyCustomViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];

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

【讨论】:

  • 试过这个然后我得到错误“没有可见的@interface声明选择器presentviewcontroller......
  • @OliBlack 我更新了代码。 vc 是对 viewController 的引用,就像任何其他的一样,只需按照您通常不需要 segue 的方式推送它
  • 谢谢,我最终只是将 UIView 设为委托,然后在 UIViewController 中调用它,然后以这种方式访问​​ segue。
  • @OliBlack 我很困惑。您是在告诉我问题是在storyboard 上的UIViewController 中使用了xib,而您不知道如何访问父级以调用segue?这根本不是你的问题。下次请清楚一点
【解决方案2】:

您可以将 ViewController 放入 Storyboard,将类设置为您的自定义 ViewController。然后,如果您在 xib 中有视图的类文件,请将您的自定义视图设置为 VC 的视图(已经在 loadView 中保存了一些代码),然后只需将自定义 VC 中的 segue 添加到另一个视图控制器。要触发该 segue,您必须在自定义 ViewController 中调用 [self performSegueWithIdentifier:@"identifierOfSegue"]

【讨论】:

  • 我的自定义视图不是 ViewController,它是自定义 UIView,没有控制器
  • “然后是一个控制视图的类”——那不是视图控制器吗?
  • 另一个答案,编程演示也必须在 ViewController 中......这就是你得到错误的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-23
  • 2011-06-15
  • 2013-08-09
相关资源
最近更新 更多