gpt4 book ai didi

ios - viewWithTag:reloadData 后返回 nil

转载 作者:行者123 更新时间:2023-11-29 12:24:57 24 4
gpt4 key购买 nike

我有 6 行由自定义单元格组成的 tableView。

自定义单元格有一个 UILabel 和一个 UISwitch。在“cellForRowAtIndexPath:”方法中,我有:

    static NSString *CellIdentifier = @"optionsCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

UISwitch *optionsSwitch = (UISwitch *)[cell viewWithTag:300];
UILabel *optionsLabel = (UILabel *) [cell viewWithTag:200];

NSLog(@"%@", optionsSwitch);
NSLog(@"%@", optionsLabel);

当 tableView 第一次实例化时(从 Storyboard)我正确地得到了两个对象(我只为 TableView 的第一行添加结果):

enter image description here

但是当我将 reloadData 方法发送到 tableView 时(UISwitch 状态可以通过编程方式更改,所以我在显示它之前更新了 tableview)我正确地得到了 UILabel 而 UISwitch 是 nil:

enter image description here

为什么 UILabel 有效而 UISwitch 无效?

UISizeClasses 未启用,如另一篇关于此问题的帖子中所建议的那样。

谢谢,科拉多

最佳答案

您在代码中的其他地方更改开关的标记,可能是为了在更改开关时可以从中获取行号。

实际上,你应该有一个自定义单元格,它有 View 的导出,这样你根本不需要使用标签,单元格应该处理开关更改以更新模型或调用 View Controller 的一些回调。

关于ios - viewWithTag:reloadData 后返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29447670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com