Table View和Table Detail View的正确操作

Posted

技术标签:

【中文标题】Table View和Table Detail View的正确操作【英文标题】:Correct operation of Table View and Table Detail View 【发布时间】:2010-08-31 06:25:35 【问题描述】:

我需要一点帮助。在我的项目中有一个标签栏。在其中一个标签栏项目上有一个导航控制器,在视图上有一个表格视图。

对于 TableViewController 有常用的代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
        return 1;


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
        return [myData count];


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
...


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
// here the DetailViewController is activated

DetailViewController 的构造与 TableViewController 类似。与 TableView 所选行相关的数据将作为 SQL 查询的关键数据,然后将其结果存储在一个数组中。唯一的区别是我使用这个:

viewWillAppear:包含和SQL查询,然后将结果加载到数组sqlQueryResult中。

- (void)viewWillDisappear:(BOOL)animated 
        while( [sqlQueryResult count] >0 )           
[sqlQueryResult removeObjectAtIndex:0];

这在显示 DetailView 表时第一次起作用。但是,如果我们返回 TableView 并选择不同的行,DetailView 会出现,但以下内容不会再次运行(因为它们已经这样做了): numberOfSectionsInTableView: 或 tableView:(UITableView *)tableView numberOfRowsInSection: 。我在文档中读到有些方法只被调用一次 - 但是我没有看到这些方法的评论。

如何“重置”TableView?或者我应该调用什么方法来设置它的行数/节数?

【问题讨论】:

【参考方案1】:

我相信您正在寻找的是:

[self.tableView reloadData];

您基本上需要向您的 tableView 发送“reloadData”消息。然后它会再次调用你的方法来刷新它的内容。

【讨论】:

感谢这个简短而有用的回答!我会尝试使用这种方法。

以上是关于Table View和Table Detail View的正确操作的主要内容,如果未能解决你的问题,请参考以下文章

10.27

sap abap中为啥table和该table的view有些数据会不同

oracle数据库的view中能添加数据吗?

OracleSQL 对原本的table更新,如何让VIEW也随之更新?

mysql 当视图 view_a 得到的数据变化后,实表 table_a 如何同步数据?

Vuetify v-data-table 拖放