如何在UITableView类中重新加载。
我正在使用reloadData方法,但它无效。
- (id)initWithCoder:(NSCoder *)coder
{
if (self = [super initWithCoder:coder])
{
[self init];
}
return self;
}
-(id)init
{
appdelegate=[[UIApplication sharedApplication]delegate];
[appdelegate readLiteratureFromDatabase];
tbl_obj.backgroundColor=[UIColor clearColor];
tbl_obj.delegate = self;
tbl_obj.dataSource = self;
[tbl_obj reloadData];
array_content = [[NSMutableArray alloc] init];
return self;
}
这里的init方法调用另一个类。所以当时表没有重新加载。
请帮忙!
答案 0 :(得分:1)
可能是您可能没有将DataSource
和Delegate
附加到您的XIB
或
您可以使用以下代码执行此操作:
self.tableView.delegate = self;
self.tableView.datasource = self;
您还必须按如下方式添加:
@interface <YourViewControllerName>:UIViewController <UITableViewDelegate,UITableViewDataSource>
编辑:
但是你应该试着理解你的控件如UITableView不能直接调用并设置到你的UIView类中。
它应该是UIViewController才有可能将数据添加并填充到TableView中。
所以你的选择是调用数据委托和数据源方法以及ViewController上的reloadData,它作为这个UIView的parentView。
所以,除非你这样做,我担心这是不可能的。
希望这会对你有所帮助。
答案 1 :(得分:1)
从查看代码看,您确实需要阅读此内容;
你不应该有一个名为init
的方法,它不会调用超级方法,最终会使事情发生变化。
将docs
ivar设置为空的不可变字符串只会浪费内存。最终你需要将文档设置为真实的东西,等到那一点做任何分配。
接下来从这里下载TableViewSuite示例;
看看简单的样本。
请花时间研究该样本,它将帮助您了解表格视图。
答案 2 :(得分:0)
UIView没有reloadData方法。 UIView Class Reference
也许你可以展示你的代码,这样我们就可以看到你想要做什么了?
答案 3 :(得分:0)
我有同样的概率,我只是使用viewDidLoad添加数据,最后我使用[super loadView];
并重新加载。