Iphone 在UITableView上重新加载数据

Iphone 在UITableView上重新加载数据,iphone,objective-c,cocoa-touch,uitableview,Iphone,Objective C,Cocoa Touch,Uitableview,如何在UITableView类中重新加载 我正在使用reloadData方法,但它不起作用 - (id)initWithCoder:(NSCoder *)coder { if (self = [super initWithCoder:coder]) { [self init]; } return self; } -(id)init { appdelegate=[[UIApplication sharedApplication]

如何在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方法调用。所以在那个时刻表是不会重新加载的


请帮忙

UIView没有重载数据方法


也许您可以显示您的代码,以便我们可以看到您正在尝试执行的操作?

可能是您没有将
数据源
委托
附加到您的XIB

您可以使用以下代码执行此操作:

self.tableView.delegate = self;
self.tableView.datasource = self;
您还必须按如下方式添加:

@interface <YourViewControllerName>:UIViewController <UITableViewDelegate,UITableViewDataSource>
@接口:UIViewController
编辑:

但是您应该试着理解,像UITableView这样的控件不能直接调用并设置到UIView类中

它应该是UIViewController,只有这样才能将数据添加并填充到TableView中

因此,您可以选择调用数据委托和数据源方法,以及在ViewController上重新加载数据,该ViewController用作此UIView的父视图

因此,除非你这样做,否则我担心这是不可能的


希望这对您有所帮助。

从您的代码来看,您似乎真的需要阅读这篇文章

您不应该有一个名为
init
的方法,该方法不调用super,最终将实现这些功能

docs
ivar设置为空的不可变字符串只会浪费内存。最终,您将需要将文档设置为真实的文档,等待该点进行任何分配

接下来从这里下载TableViewSuite示例

看一看这个简单的例子


请花时间研究该示例,它将帮助您理解表视图。

我也有同样的问题,我只是使用viewDidLoad添加数据,最后我使用了
[super loadView]并重新加载

reloadData适用于UITableView类,您希望在UIView类中重新加载什么?放置上下文代码以获得您需要的帮助您需要提供更多信息-您实际上在做什么?请发布一些代码片段。否则,没有人能够正确回答您的“问题”…重新加载数据仅在UITableView上有效。您到底想做什么?还有一点更重要的是,在调用
[tableView reloadData]
方法之前必须先初始化数组。在调用reloadData之前是否初始化数组并为数组赋值?尝试初始化数组并在
视图上重新加载tableView将显示
方法。希望这有帮助。:)我已经习惯了看课。所以我不能使用ViewWillAppease方法。@Sam:但是请尝试理解,不能直接调用TableView之类的控件并将其设置到UIView类中。它应该是UIViewController,只有这样才能将数据添加并填充到TableView中。因此,您可以选择调用数据委托和数据源方法,以及ViewController上的
reloadData
,该视图用作此UIView的父视图。因此,除非你这样做,否则我担心这是不可能的。希望这对您有所帮助。实际上,init方法也在另一个类中调用。但是,表不是重载的。实际上,您需要了解init方法是什么,何时调用它,以及为什么上面的代码被阻塞