【问题标题】:How to manually bind UITableViewController class to UITableView?如何手动将 UITableViewController 类绑定到 UITableView?
【发布时间】:2014-03-18 16:07:23
【问题描述】:

在情节提要中,您可以创建UITableViewController,将您的自定义类分配给它,您的自定义类将完全代表UITableView。但是,当我没有 UITableViewController,但 UITableView 仅在情节提要中的某个位置时,如何将其完全绑定到我的表控制器类?

在我打算创建表视图控制器的类中,我有我的 UITableView 的出口。然后我正在创建控制器并将 tableView 分配给插座:

_catalogTVC = [[CatalogueTableViewController alloc] initWithStyle:UITableViewStylePlain];
_catalogTVC.tableView = _tableViewOutlet;

不幸的是,这并没有完全绑定表控制器,因为没有数据源或委托消息被分派到我的表视图控制器类。我想知道情节提要还做了什么来绑定它们?

【问题讨论】:

    标签: ios uitableview


    【解决方案1】:

    看起来是个坏主意,但如果你真的需要这套delegatedataSource_tableViewOutlet,可以这样:

    _tableViewOutlet.dataSource = _catalogTVC;
    _tableViewOutlet.delegate = _catalogTVC;
    

    【讨论】:

    • 是的,我知道这很糟糕,但它来自this 问题。但是,即使在您提出建议后,我的表视图控制器也没有调用委托方法。
    • @Pablo 你能在这行设置断点并检查_tableViewOutlet_catalogTVC 不为空吗?
    • 又一个猜测,你应该有指向_catalogTVC的强指针,因为delegate属性很弱,可以释放
    • 是的,弱是问题所在。看起来它开始起作用了。如果您在我的另一个问题中看到上述问题的更好解决方案,请提出建议。谢谢。 +1/点赞。
    • 谢谢,抱歉,我查看了您的另一个问题,但无法为您提供帮助。祝你好运!
    【解决方案2】:

    嗯...考虑您的原始问题,如果您想使用 UITableViewController 来管理单元格和静态布局的能力,最好的可能性是在故事板中使用容器视图。这将允许您围绕表格布局主视图内容,并且仍然保留一个单独的 UITableViewController 维护表格本身。设置正确的自动布局约束(真的很简单,只需将容器视图锚定到页眉和页脚视图)

    【讨论】:

    • 确实值得一试。让我尽快回复你。谢谢。
    • 是的,效果更好。您可以将您的答案移至原始问题,以便我在那里接受。
    • 我很高兴,我有一种感觉,我将不得不转换我自己的一些视图控制器来使用它,因为 Xcode 5.1 现在需要 UITableViewController 来使用静态布局。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    相关资源
    最近更新 更多