代码之家  ›  专栏  ›  技术社区  ›  pchap10k

在PopViewControllerAnimated之后,UITableViewController未重新绘制新的单元格文本标签

  •  0
  • pchap10k  · 技术社区  · 16 年前

    我有个问题 表格控制器 删除子视图后无法重新绘制更新的单元格。

    这就是发生的事情。在子视图中更改数据后,父视图控制器重新加载源数据数组并运行 [表视图重新加载数据] 通过发布通知。在触发之后,我使用 PopViewController动画 返回到父级uiTableViewController(这会将子视图从堆栈中弹出,并向上显示控制器一级)。

    但是,我更新的数据不会出现在父视图控制器中!根据调试器,单元格的标签已更新,但可见标签不变。但是,如果我滚动浏览表格,当更新的单元格重新出现时,它会立即移出视图,标签会更新!

    我也试着打电话 [表视图重新加载数据] 通过 视图将出现 但问题依然存在。

    以下是一些可能有帮助的附加信息。我有3个视图,结构如下:

    1/  SettingsViewController : UITableViewController
    2/  -- UserView : UITableViewController
    3/  ---- UserDetailsView : UIViewController <UIActionSheetDelegate>
    

    我从用户视图内部调用userdetailsview,如下所示:

     UserDetailsView *userDetailsView = [[UserDetailsView alloc] init];
     [self.navigationController pushViewController:userDetailsView animated:YES];
    

    如果我返回到最上面的控制器(settingsViewController),然后加载有问题的控制器(userview),所有内容都会正确绘制。只有当从子视图返回时,才会发生此问题。

    提前感谢您的建议。

    1 回复  |  直到 16 年前
        1
  •  0
  •   pchap10k    16 年前

    经过大约一个小时的成对编码,终于得出了这个结论。

    过了一会儿,我们注意到 TableView始终为空 每当我们发送reloaddata消息时。 正如您在目标C中可能知道的,空对象接受任何消息而不抱怨。

    原来“某人”(嗯,对不起是我)在头文件中定义了这一行。

     UITableView *tableView;
    

    现在,您的智能cookies将知道,因为我们扩展了uitaleViewController, 我们不需要自己做一个指向TableView的指针。 . 实际上,我用一个空对象替换了继承的TableView成员。

    谜团解决了。希望这也能帮助其他人!D

    推荐文章