ios - 将 TableView 添加为 subview 不会重新加载数据

标签 ios iphone objective-c uitableview

我在 Storyboard中创建了UITableViewController,并通过

实例化它
self.centerCMController = [self.storyboard instantiateViewControllerWithIdentifier:@"ContextMenu"];
self.centerCMController.delegate = self;
[self.view addSubview:self.centerCMController.view];

当我稍后在代码中调用时

[self.centerCMController.tableView reloadData];

没有任何反应。 TableView 不会重新加载数据!我做了一些调查,发现我是否在行之前设置了 numberOfTtems = 3:

[self.view addSubview:self.centerCMController.view];

TableView 仅显示 3 项。无论我稍后更改 numberOfTtems = 4,它都只会显示前 3 项(尽管正确)...但单元格数量将固定到时间结束。

我在这里错过了什么?

编辑:

为了更具描述性,我正确地设置了代表 -

(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView and

-

(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

被调用,首先返回 1 和其他 numberOfItems,开始时为 0,重新加载时为 2...但是 -

 (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

永远不会被调用

最佳答案

我认为你的问题是你需要这些电话:

[[[self centerCMController] tableView] setDelegate:self];
[[[self centerCMController] tableView] setDatasource:self];

当您执行instantiateViewControllerWithIdentifier:时,您正在创建一个UIViewController,而不是UITableView。所以设置委托(delegate)不应该做任何事情,也没有数据源。

关于ios - 将 TableView 添加为 subview 不会重新加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20616572/

相关文章:

iphone - MKAnnotation viewForAnnotation 从未被调用

ios - 索引 iCarousel 中 UIView 的多选

objective-c - 我如何为 IOS 简化这个 Objective-C 代码?

iphone - 不滚动的 UITableView header

ios - 在 iOS 应用程序中播放 Youtube 视频

html - 如何从ios webview读取文档目录中的图像文件

ios - 如何在通话未连接时关闭 Callkit UI

ios - 应用不想在 iPhone 上运行

ios - 如何设置特定 UITableViewCell 的背景颜色

iphone - Cocoa/iOS/iPhone 中的模型对象所有权和 MVC