更改电池配件类型?

Posted

技术标签:

【中文标题】更改电池配件类型?【英文标题】:Change Cell Accessory Type? 【发布时间】:2013-08-22 04:12:39 【问题描述】:

我有一个名为 allone.h 的表格视图,其中的单元格都是带有披露指示符的字幕样式单元格。 字幕文本是动态生成的,因此很可能每个单元格都有不同的字幕文本。

我有一个 if 语句表示 if text = "hello, world",然后将附件类型更改为 detailDisclosureIndicator。当按下detailDisclosureIndicator 时,它会推送一个新控制器,更改字幕文本,然后弹出该视图控制器并返回到allone.h。问题是,它仍然显示detailDisclosureIndicator,即使 如果 text != "hello, world"。我尝试更改viewWillAppear 中的样式,但我无法访问单元格。

这是我的代码。

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

//populate cells with stuff

    if([cell.detailTextLabel.text isEqualToString:@"hello, world"])
       cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
    

所以我想我的问题是,当我返回allone.h 并且单元格的文本不再是“hello, world”时,如何更改附件类型back

【问题讨论】:

你试过重新加载 UITableView 吗?你不需要重新加载所有的 UITableView,只需要你想改变它的单元格。 @rocir:我不确定您所说的只是要更改的单元格是什么意思,但是每次 viewWillAppear 为“allone.h”时,都会重新加载表格视图。仍然在原来有文本“你好,世界”的单元格上显示详细信息披露指示符。我只是不确定将新配件类型放入哪种方法。 您可以在您的 -[UITableView cellForRowAtIndexPath:] 中执行此操作。就像你的 if 语句的“else”一样。要重新加载单元格,您只需调用 reloadData 或 reloadRowsAtIndexPaths:withRowAnimation:。您是否确保在 if 语句中检查之前更改了 detailTextLabel? 您必须有一个用于填充字幕的数组。您还需要替换数组内该位置的文本。因此,当下次重新加载 Tableview 时,它会获取更改的文本。 @rocir:就像添加一个 else 语句一样简单。如果你把它作为答案,我会接受它作为答案。 【参考方案1】:

您可以在您的 -[UITableView cellForRowAtIndexPath:] 中执行此操作。就像你的 if 语句的“else”一样。

要重新加载单元格,您只需调用 reloadData 或 reloadRowsAtIndexPaths:withRowAnimation:。

【讨论】:

【参考方案2】:

我认为 cell.detailTextLable 等于 nil。所以电池配件不会改变。请仔细检查。你之前配置过单元格吗?

【讨论】:

以上是关于更改电池配件类型?的主要内容,如果未能解决你的问题,请参考以下文章

如何触发电池百分比更改的事件?

iPhone 显着位置变化电池耗尽?

homekit怎么用

Qt的 MinGw版本一直都不支持WebEngIne吗

SwiftUi - 背景无法更改/无法访问

iOS 应用程序可以通过 WiFi 与 MFi 配件通信吗?