【问题标题】:Reload UITableView not functioning in IOS5重新加载 UITableView 在 IOS5 中不起作用
【发布时间】:2012-07-25 16:05:57
【问题描述】:

UITableview reloadData 函数没有调用 cellforRowAtIndexPath 方法。以下是我尝试过的事情:

  1. 致电[self.myTableView reloadData];
  2. 也在ViewWillAppear 上调用reloadData 方法。
  3. 也写了self.myTableView.delegate=self;self.myTableView.datasource=self
  4. 我还使用 NSLog 测试了行数是否正确更新。
  5. 数据源和委托在情节提要中连接。

【问题讨论】:

    标签: iphone uitableview reload


    【解决方案1】:

    我猜你没有在你的 .h 文件中声明委托。

    示例。

    @interface ClassName:UIViewController <UITableViewDelegate> 
    

    【讨论】:

    • 我已经声明了,还有UITableViewDataSource。
    【解决方案2】:

    您的观点是否符合UITableViewDelegateUITableViewDatasource

    它是否至少实现了这些协议中所有必需的方法?另外,没有必要说self.myTableView,如果你在课堂上工作,你可以说myTableView

    这听起来很傻,但是你忘记保存你的故事板了吗?我不止一次这样做过。

    【讨论】:

    • 编译或运行程序时,XCode会保存未保存的更改,然后编译代码。
    • 旧版本不保存……但他确实说他用的是故事板,所以我猜他用的是新版本。
    • 是自动保存。所有的数据源和委托方法都实现了。
    • 还有一件重要的事情,我正在使用带有故事板的自定义单元格,并带有正确的标识符。
    【解决方案3】:

    你实现了这个方法吗?

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    {
        return 1; //Return the number of sections you want
    }
    

    很容易忘记,因为默认返回 0。

    如果你不这样做,tableview 认为它没有部分并且不要求任何行。

    【讨论】:

    • 是的,我这样做了。还有一件重要的事情,我正在使用带有正确标识符的情节提要的自定义单元格。
    【解决方案4】:

    确保您设置了表格视图的委托:

    tableView.delegate = _an_object_that_conforms_to_UITableViewDelegate_;
    

    这通常是您声明表格视图的视图控制器,因此您将拥有:

    tableView.delegate = self;
    

    只需确保包含表格视图并充当其委托的视图控制器将自己声明为 UITableViewDelegate:

    @class MyViewController <UITableViewDelegate> {
    
      UITableView *tableView;
      ...
    

    【讨论】:

    • 是的,我这样做了。还有一件重要的事情,我正在使用带有正确标识符的情节提要的自定义单元格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2017-12-29
    • 2012-05-31
    相关资源
    最近更新 更多