【问题标题】:tableView property with UIViewController (or UITableViewController)带有 UIViewController(或 UITableViewController)的 tableView 属性
【发布时间】:2012-04-26 09:48:12
【问题描述】:
#import <UIKit/UIKit.h>

@interface FourthViewController : UIViewController{

//@interface FourthViewController : UITableViewController{

我想更新我的表格视图,所以我尝试使用[self.tableView reloadData],但我什至无法输入这行代码,因为我正在使用UIViewController,而tableView 属性仅适用于UITableViewController .所以我尝试变得聪明,只是将UIViewController 更改为UITableViewController,但我得到了这个错误:

 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "b4k-XH-Uhj-view-V2h-dE-ixJ" nib but didn't get a UITableView.'

Imo 这很奇怪,因为 UITableViewController 可以为 tableView 工作,但反过来不行,但接缝好像我全都错了,或者这里发生了什么? 如果您需要更多代码=) 提前谢谢。

【问题讨论】:

    标签: xcode uiviewcontroller uitableview reloaddata


    【解决方案1】:

    UITableViewController 实际上只是一个 UIViewController,它包含一个到 UITableView 的出口并实现两个 tableview 委托:UITableViewDelegate 和 UITableViewDataSource。

    您可能需要考虑将 nib 文件中的 viewcontroller 实例替换为 UITableViewController 而不是标准的 UIViewController。

    或者,您可以手动调整您的 ForthViewController 实例,方法是为包含的 UITableView 创建一个 outlet 以将 tableview 作为属性公开。

    但是,如果您这样做,您还必须在某处(可能在 ForthViewController 中)手动实现两个 tableview 委托 UITableViewDelegate 和 UITableViewDataSource,并手动将 UITableView 与这些委托关联。

    【讨论】:

    • 您好,感谢您如此迅速而明确地回答。在我阅读您的答案之前,我已经开始这样做了。我认为这是您的“替代”方式。 @interface FourthViewController : UIViewController{ NSMutableArray * arrayKA; IBOutlet UITableView *TableKA;我用 tableView 曲棍球 IBOutlet(在 SB 中拖动)我不明白你的遗言“..并手动将 UITableView 与这些代表相关联。”我是 Xcode 的新手,但我想如果你能帮助我理解你的意思,我可以弄清楚。再次感谢!大有帮助!
    • @EmilOoo 我在 ForthViewController 中的“手动将 UITableView 与这些代表关联”的意思。实现你必须明确声明 self.TableView.delegate = self; self.TableView.Datasource = 自我;查看 Apple 文档,了解使用这些委托时需要实现的方法。希望这会有所帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 2017-02-03
    • 1970-01-01
    • 2011-12-12
    相关资源
    最近更新 更多