【问题标题】:iOS: Embed Table View in other View (but table view has a complex table view controller..)iOS:在其他视图中嵌入表视图(但表视图有一个复杂的表视图控制器..)
【发布时间】:2013-05-10 09:48:46
【问题描述】:

我正在努力解决这个问题,所以我需要你的帮助。基本上我已经编写了一个复杂的表格视图控制器(使用 NSFetchedResults 协议等)并且已经在我的应用程序中使用它并且效果很好。因为我现在想要在另一个视图中精确地看到这个表视图(所以我可以在屏幕底部添加一个小子视图),我真的很努力如何做到这一点!我知道如何在另一个视图中嵌入一个简单的表格视图并将其链接到它的视图控制器。

但是在我的情况下,我怎样才能以尽可能少的努力做到这一点呢?我的意思是我可以以某种方式使用我已经拥有的这个表视图控制器,即使超级视图必须有自己的视图控制器?!我该怎么做?对不起,我还是个初学者:)

【问题讨论】:

    标签: ios tableview subview


    【解决方案1】:

    因为你已经有了一个 TableViewController。要将其作为子视图添加到另一个 ViewController 的(自身)视图中,请执行以下操作:

    TVC = <your tableViewController instance>;
    [self addChildViewController:TVC];
    TVC.view.frame = <your desired frame>;
    [self.view addSubview:TVC.view];
    

    将 TVC 添加为 childViewController 会将“self”的 UI 方法(如 willAppear 和 all)转发到 TVC。

    【讨论】:

    • 您好,非常感谢。但我还不明白的是这个 TVC.view.frame = 你想要的框架。我已经在 Xcode 中布置了布局,那么该框架到底是什么?
    • 如果你已经用XIB布局了,那么就不用设置frame了。转到 XIB 并获取一个 tableViewController 对象。将 tableViewCONtroller 对象文件所有者设置为您的自定义 tableViewcontroller 类,方法是更改​​身份检查器中的类名(左起第三个按钮,在右窗格中),然后将您添加的 tableView 添加到此 TableViewController 的视图中。并相应地设置委托和数据源。
    • 对不起,我仍然不理解 100% :-( 这么说吧:到目前为止,我有一个复杂的 TableViewController。据我所知(并且到目前为止)我选择了一个普通的 ViewController并给它的视图两个子视图。一个普通视图和一个表格视图。但是从这里我不明白了。我为顶视图控制器子类化了一个普通视图控制器,以便为子视图设置所有必要的连接。但是现在我被卡住了……我的意思是在普通的表视图控制器中我不需要设置委托和数据源,但我实际上在这里做什么?!不知道在顶部视图控制器中放置什么代码。
    • 一个普通的 tableViewController 已经连接了数据源和委托。在您添加这两个子视图之后。取一个 tabviewcontroller 对象。并将其视图出口连接到 tableview (第二个子视图),并为该选项卡;eView (转到连接检查器,最后一个按钮)并连接这两个数据源并相应地委托,即到您将编写 cellforRow 的类和其他类似的方法。很可能是新添加的 tableViewController 对象。
    • 再次感谢您的帮助!当前情况:-我已经将这个复杂的表视图控制器更改为有一个表视图的 IBOutlet,而不是 uf 子类化表视图控制器,它实现了两个表视图协议-我的新超级视图控制器继承自这个新的 CoreDataViewController,并且我设置了表视图出口到嵌入的表视图,并从这个表视图中获取数据源并委托给超级视图控制器。现在我的数据显示出来了。但是,它没有进入编辑模式(以前​​有效)......知道为什么吗?我是不是连接错了什么?
    猜你喜欢
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多