将 editButtonItem 连接到 UITableView

Posted

技术标签:

【中文标题】将 editButtonItem 连接到 UITableView【英文标题】:Connecting an editButtonItem to a UITableView 【发布时间】:2012-10-15 15:08:27 【问题描述】:

我有一个UIViewController,它在其视图中添加了一个UITableView 和一个UIToolbar。不幸的是,在这种情况下我不能使用UITableViewController

我已将视图控制器的editButtonItem 添加到工具栏中。我需要在UITableViewController 上复制编辑按钮的默认行为 - 编辑按钮应该绑定到 tableView 并将其切换到/退出编辑模式。

我已经覆盖了UIViewControllersetEditing 以包含以下行:

[_tableView setEditing:editing animated:animated];

这在大多数情况下都有效 - 当使用 editButtonItem 时,表格视图成功进入和退出编辑模式。

但是,至少存在一个问题。在UITableViewController 上,当用户滑过表格中的一行时,编辑按钮会切换到“完成”。 “完成”然后将该行返回到它的非编辑版本。此外,在行外触摸会将其返回到查看模式,并将编辑按钮恢复为“完成”。

我的问题:

    如何复制此行为,以便在单个行进入/退出编辑模式时更改“编辑”按钮的状态? 我可能需要复制UITableViewControllereditButtonItem 的其他哪些行为?

【问题讨论】:

在这篇文章中,你所说的 UIView,你的意思是 UIViewController。大不同。 是的,在某些地方 - 谢谢,我已经更新了。 tableview 和 toolbar 是视图控制器视图的子视图,但 editButtonItem 肯定属于控制器。请随时编辑问题。 【参考方案1】:

我自己的应用中有这样的案例。我实现了以下表格视图委托方法:

- (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath 
    [self setEditing:YES animated:YES];


- (void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath 
    [self setEditing:NO animated:YES];

【讨论】:

以上是关于将 editButtonItem 连接到 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式更改editButtonItem的状态?

我无法将 TableViewCell 按钮连接到 TableViewController!如何将 TableViewCell 中的值连接到 TableViewController?

“无法连接到远程 VM”将 jdb 连接到 Windows 上的 android 模拟器

将 Auth0 连接到我的后端后,如何将其连接到我的 NextJS 前端?

将 nesjs 应用程序连接到 SQL Server Express 时出错:无法连接到 localhost:1433 - 自签名证书

Android 10 / API 29:如何将手机连接到配置的网络?