【问题标题】:Communicating between Views Instantiated By Storyboard在 Storyboard 实例化的视图之间进行通信
【发布时间】:2014-11-14 19:15:12
【问题描述】:

我的故事板中有以下内容:

ViewA 包含一个 Container 和一个 UIView。容器中嵌入了一个 Table View Controller。

我想在 Table 中执行一些会影响 UIView 外观的操作,因此我需要从 Table View Controller 中调用 ViewA 上的方法。

我关注了这篇文章 - “传回数据”部分,这一切都很有意义。 Passing Data between View Controllers 我遇到的问题是以编程方式实例化控制器的最后一步。

情节提要(或某些 ios 框架组件)正在为我实例化两个控制器。

所以,我的问题是,如何获得对自动为我创建的 View 实例的引用 来自另一个控制器。

如何从 ViewA 获取对我的 TableViewController 的引用以设置委托?

【问题讨论】:

  • 在 viewA 中自定义协议和处理方法,或者你可以去通知处理程序概念

标签: ios storyboard communication viewcontroller


【解决方案1】:

这两个控制器具有子父关系。从表视图控制器中,您可以使用 self.parentViewController 访问 A。从 A 中,您可以使用 self.childViewControllers[0] 访问表视图控制器。也可以在A中实现prepareForSegue,以segue.destinationViewController的形式访问table view controller;您应该在那里将 A 设置为委托。

【讨论】:

    【解决方案2】:

    首先你必须为你的UITableViewController制作故事板标识符。

    你可以试试这个代码...

    ClassnameViewController *instance = (ClassnameViewController *) [self.storyboard instantiateViewControllerWithIdentifier:@"storyboardIdentifierSetByUser"];
    
    instance.tableViewObject.delegate = self;
    

    通过使用它,您可以访问 ClassnameViewController 的所有属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-05
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      相关资源
      最近更新 更多