【问题标题】:Accessing a ViewController's subview that's added on the storyboard访问添加到故事板上的 ViewController 的子视图
【发布时间】:2015-03-21 13:28:47
【问题描述】:

请参阅下面的图片以获取故事板视觉效果。我有一个名为 StudioViewController 的 ViewController(它在情节提要上标记为 ViewController)。我有一个称为 CanvasViewController 的 UIScrollView(实际上位于视图控制器顶部的视图控制器右侧的东西)。我希望能够访问 StudioViewController 类中的 CanvasViewController,我该怎么做?因为我在这里的故事板中创建了它,所以我似乎没有允许我访问 CanvasViewController 的变量......我应该用代码创建它,还是有一些明显的方法来访问它,我完全错过了?

谢谢

*********更新*********

rdelmar 在下面的 cmets 中已经回答了这个问题:

【问题讨论】:

  • 看起来您在 StudioViewController 和 CanvasViewController 之间有一个 segue,因此您可以在 prepareForSegue 中使用 segue.destinationViewController 获取对 CanvasViewController 的引用。
  • 成功了!谢谢。
  • 还有其他方法吗?也许通过访问 ContainerView 或其他方式。它试图寻找一个 ContainerView 的子视图,该子视图可以投射到我的 CanvasViewController 但找不到。我只是好奇是否覆盖 PrepareForSegue 是正确的方法,或者是否有另一种设计方法。也许通过情节提要 ID 或其他方式?
  • 当然,您也可以通过其 childViewControllers 属性从父视图控制器访问它。如果您只有一个孩子,那么它将是 childViewControllers.firstObject。但是使用 prepareForSegue 是一种正确的方法。您无法通过其故事板 ID 访问控制器,该 ID 仅用于实例化新的控制器(在这种情况下您不想这样做)。

标签: ios uiviewcontroller xamarin.ios xamarin storyboard


【解决方案1】:

您可以在应用程序委托中创建一个共享变量。这不是很安全,但是当我由于页面转换而无法访问孩子或父母时,我就导致了这种情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 2016-05-17
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多