我有一个具有两个tableview控制器和一个详细视图的向下钻取tableview应用程序。数据模型是一个具有11个子类的类,每个数据部分对应一个子类。所有子类属性都是字符串或包含字符串数组。没有空的属性。所有子类都具有相同的属性,但其子类的数据是唯一的。我的想法是使用didSelectRow方法获取一个indexpath.row整数,我将用它来初始化相应的子类,并通过segue将其传递给第二个tableview控制器,该控制器将包含详细信息视图所需的所有数据。我知道如何使用segue传递数据集合。但是,传递整个子类似乎涉及不同的方法。不知道如何处理这个问题。我是否需要在第二个视图控制器中初始化一个类,该类具有与子类相同的属性类型但不包含数据?第二个表视图控制器中的initialize事件将出现在viewWillLoad方法中。我的假设是有人可能知道更好的方法。
答案 0 :(得分:0)
将数据从View控制器传递到另一个控制器的标准方法是使用委托。声明一个自定义协议,该协议具有您需要从第二个View控制器访问的功能和属性。这样你就可以与第二个视图控制器共享类实例。您可以在源视图控制器中实现协议,并在执行segue后将源视图控制器的引用传递给第二个视图。您将在源视图控制器中声明的函数prepare(对于segue:UIStoryboardSegue,sender:Any?)中设置委托。调用performSegue后将调用此函数。希望这会对你有所帮助。