为什么UItableViewCell viewWithTag返回零?
我使用的是IOX8和Xcode 6。我在序列图像板中创建了一个带有customtype单元格的表,并在其中放置了一个标签。我在IB中输入了标签的标签号,以便在代码中检索到标签的引用。 但是,当我尝试在“cellForRowAtIndexPath”中获取对标签的引用时,使用viewWithTag,标签的引用为零: 以下是cellForRowAtIndexPath中重要的两行代码:为什么UItableViewCell viewWithTag返回零?,uitableview,viewwithtag,Uitableview,Viewwithtag,我使用的是IOX8和Xcode 6。我在序列图像板中创建了一个带有customtype单元格的表,并在其中放置了一个标签。我在IB中输入了标签的标签号,以便在代码中检索到标签的引用。 但是,当我尝试在“cellForRowAtIndexPath”中获取对标签的引用时,使用viewWithTag,标签的引用为零: 以下是cellForRowAtIndexPath中重要的两行代码: UITableViewCell *cell = [tableView dequeueReusableCellWithI
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"PlayerCell"];
UILabel *nameLabel = (UILabel *)[cell viewWithTag:1];
“cell viewWithTag:1”行返回零,我不明白为什么
我还尝试了“cell.contentView WithTag:1”,但也没有成功
这是IOS 8或Xcode 6中的错误吗
谢谢
-Malena尝试调试视图层次结构
- 在调试模式下运行应用程序李>
- 转到UITableViewController所在的视图李>
- 在Xcode中单击:调试->查看调试->捕获视图层次结构李>
- 检查是否正确分配了天气标签
大小类
,查看带标签
总是返回nil
。我认为这可能是Xcode 6.x的一个bug。只需禁用大小类
,一切正常。取消选择故事板中的大小类选项,然后清理并构建应用程序。
现在应该可以工作了。如果初始视图控制器是我的tableview,那么一切都按预期工作。当它来自另一个视图控制器时,我遇到了问题 就我而言,在以前的视图控制器中,我有:
RoutePreview *rs = [[RoutePreview alloc] init];
rs.rota = [availableRoutes objectAtIndex:indexPath.row];
[self.navigationController pushViewController:rs animated:YES];
我把这个换成了
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"SBIPhone" bundle:[NSBundle mainBundle]];
RoutePreview *xpto = [storyboard instantiateViewControllerWithIdentifier:@"RouteSummary"];
xpto.rota = [availableRoutes objectAtIndex:indexPath.row];
[self.navigationController pushViewController:xpto animated:YES];
问题已经解决了
基本上不是直接实例化tableviewcontroller,而是通过标识符实例化它,并且不再在
tableView中使用nill单元格dequeueReusableCellWithIdentifier
或CellViewWithTag:
返回nil。尝试使视图“已安装”
”,检查此项:我错误地制作了两个UITableViewCell
原型,一个在故事板上,我给了它标签号,另一个在代码中,我注册了它的Nib文件。这造成了一个混乱,我无法用标签获得视图。
我的,例如。,
让nib=UINib(nibName:“DetailTableViewCell”,bundle:nil)
tableView.register(nib,forCellReuseIdentifier:“headerViewCell”)
从我的代码中删除上面的代码片段解决了这个问题。希望这能帮助任何有类似问题的人 手机呢?手机也是零吗?在我的例子中,我的单元格为零。这个问题的答案是[Here][1][1]:也许你在视图可见之前加载了数据。。。尝试在ViewDidApparis中重新加载数据如果需要启用大小类,是否有解决方法?取消选中“清理和构建”并重新检查大小类选项需要在此“已安装”大小类上执行一些严肃的工作!!