我有一个UITableView设置和工作,现在我有一个小问题。我需要在视图加载时重新加载tableView的数据,而且当表视图中没有数据开始时,我无法工作的一件事是尝试重新加载数据。
基本上列表是可变长度的,并且内容是从文件加载的,我想知道的是,我是否可以强制表重新加载而不是让它忽略数据源方法,就像是什么每当调用[tableView reloadData]时就会发生。
答案 0 :(得分:2)
[tableView reloadData]
完全依赖于数据源方法!因此,您将看到忽略数据源方法的唯一方法是,您没有将表视图的数据源(可能是委托)设置为您想要作为数据源的对象。您可以通过Interface Builder或以编程方式设置它们,例如:
tableView.dataSource = self;
tableView.delegate = self;
答案 1 :(得分:1)
每当视图加载时
你在哪里打电话给 reloadData ?你在 -viewDidLoad 方法中调用它吗?如果是,则可能不正确,因为 -viewDidLoad 仅被调用一次 - 当创建相应的UIViewController的视图时(在第一次使用时)。也许您应该看看 -viewWillAppear ,无论何时要显示视图,都要调用它(假设正确使用UIViewController)。
另一个可能的原因是,如果您使用 -viewWillAppear (或 -viewDidAppear ),则根本不会触发它。如果您使用自定义UIViewController层次结构,则会发生这种情况。在这种情况下,你必须亲自调用它(有例外 - 例如UINavigationController为你做这个,但是简单的 [someView addSubview:myController.view] 没有)。
另外请检查代理是否设置正确且tableView不等于nil(因为您知道消息到nil只是被忽略)。
答案 2 :(得分:0)
数据源方法; 您是否设置了IBOUTLET和来源?