我在 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/