Uitableview 如何在xib制作的表格中重新加载数据

Uitableview 如何在xib制作的表格中重新加载数据,uitableview,uiviewcontroller,reloaddata,Uitableview,Uiviewcontroller,Reloaddata,[myTable reloadData]不起作用[myTable DeceloseRowatineXpath:indexPath:YES]也不起作用 我以前将UITableViewController子类化,这两个函数都在其中工作。然后,我将类更改为带有委托的UIViewController子类,以便可以使用xib。从那时起,这些功能停止工作 我已经将其设置为通过单击按钮触发重新加载数据。多次运行调试器表明,表方法甚至没有被重载数据触发,尽管在单击按钮之前,表加载很好。委托源和委托被设置为文件的

[myTable reloadData]不起作用[myTable DeceloseRowatineXpath:indexPath:YES]也不起作用

我以前将UITableViewController子类化,这两个函数都在其中工作。然后,我将类更改为带有委托的UIViewController子类,以便可以使用xib。从那时起,这些功能停止工作

我已经将其设置为通过单击按钮触发重新加载数据。多次运行调试器表明,表方法甚至没有被重载数据触发,尽管在单击按钮之前,表加载很好。委托源和委托被设置为文件的所有者,这样就可以了


非常感谢。

我猜您没有设置myTable的插座。这就解释了为什么datasource和delegate可以工作,但不能调用重载数据

假设这就是问题所在,您需要在@interface中执行以下操作:

@property (nonatomic, retain) IBOutlet UITableView *myTable;
和一个实例变量UITableView*myTable。然后你需要@synthesis myTable;在您的实现中

然后,您需要使用interface builder将表格视图分配给此插座,方法是从文件的“所有者”>“连接”选项卡中的myTable条目拖动到布局中的表格视图


假设这就是问题所在,您现在可以在表视图上调用重载数据等方法。

找到此结果:[UITableView*self.view reloadData];但它会在两次加载后导致崩溃这是因为您的视图不再是UITableView,因为您不再是UITableViewController的子类。如果有帮助的话,我可以在下面扩展我的答案来解释。嗨,梅森,谢谢你的回答。这似乎对事情没有影响。我已经在IB中连接了所有东西,但没有在myTable上使用retain。我看到的示例代码没有使用retain或Synthesis,但我现在将所有这些都放进去尝试一下。不幸的是,仍然有相同的响应-代码点击[myTable reloadData],但这并没有调用表函数,基本上什么都没有发生:它没有进入表代码块。有趣。你能做一下NSLog@%@,myTable并检查它是否为零吗?是的,你是对的-它为空。试试这个主意不错。我该怎么处理?到目前为止,我已经在mytable上获得了一个retain、Synthesis和IBuitable视图。我的接口声明是:@interface TableView:UIViewController。My tableview在IB中作为数据源、委托和myTable连接到文件所有者。所以我确定我应该修补什么。再次感谢您的帮助。我猜没有使用xib,但是文件的所有者身份与我的类-TableView关联。所以不要去那里。听起来很沮丧!您可以通过在某个地方放置一个大按钮来测试XIB是否正在使用,并在运行应用程序时查看是否在屏幕上显示。如果你想上传课程或项目,我可以看看。