解决UITableView在editing状态下点击任意一行(cell)依旧会触发TableViewCell所绑定的segue 的方法

继续总结 自己在第一个app中遇到的一些小问题

背景条件如下:现有一个prototype cell通过segue(show)与其DetailView相连,此UITableView包含编辑按钮(触发进入编辑editing状态)

如图二,在编辑状态下,假设用户准备选择多个cell进行删除,在用户的finger刚点击任意一个cell时,就已经触发了segue,进入到DetailView中,当通过NV Controller返回时,之前选择的cell当然还在

我所想要的是,在编辑状态下,阻止segue(类型无论是show,show detail或present modally)的perform

个人思路与解决办法如下:

因为跟segue有关,所以我第一时间想到的是prepareForSegue,但是苹果自带的comment已经说明了这个是在navigation发生之前即触发segue之前的准备操作,那么很明显不是这个,不知道各位有没有注意到一个小细节,这个方法并不是UITableViewController里边的方法(如图二),虽然我们创建一个继承UITableViewController的类之后会自带这个方法,但是实际上它是来自于UITableViewController的superclass--UIViewController的,那么UIViewController里边说不定就有关于segue的其他方法

果不其然,UIViewController关于interacting with storyboards的方法里边就有一个

- shouldPerformSegueWithIdentifier:sender:方法,它的介绍就告诉了我们 它可以决定是否触发特定的segue

实现代码如下:

1 - (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
2     if (self.tableView.editing) {
3         return NO;
4     }
5     return YES;
6 }

因为我这里只有一个segue,所以就不用identifier辨别具体是哪个segue了,当处于editing状态时返回NO,segue就不会再触发了~~

时间: 2024-10-26 20:48:39

解决UITableView在editing状态下点击任意一行(cell)依旧会触发TableViewCell所绑定的segue 的方法的相关文章

ios 8 UITableView 编辑删除状态不点击“删除”,页面假死临时解决方案

ios8 UITableView 中编辑删除状态(isEditing:YES)不点击"删除"按钮点击其他位置,UITableView会假死,不可滑动,点击无效而userInteractionEnabled:YES,isEditing:NO(图片三--->图片四): 而低版本(如ios5)中编辑删除状态不点击"删除" UITableView会回到编辑状态(图片三--->图片二). 解决办法:当ios8 编辑删除状态不点击"删除"按钮点击

解决:WdatePicker新增状态下只能取比当前月份大的月份,编辑状态下只能取比当前input里指定月份的月份大的值

onclick="WdatePicker({ dateFmt: 'yyyy-MM', autoPickDate: true, minDate: this.value==''?'%y-#{%M+1}':this.value })" 比如今天是七月份,那么只能取八月份及其以后的月份,其它以前的月份是点不动的: 如果我是编辑状态下input给的值是9月份,那么只能取9月分份及其以后的月份: 原文地址:https://www.cnblogs.com/firstcsharp/p/11133515

安卓下点击a标签不跳转;点击a标签在手机真机上会调出手机键盘的解决办法

安卓下点击a标签不跳转的解决办法,是不用href做跳转的链接,改为用JS控制跳转 1 <a href="javascript:;" ontouchstart="window.location.href='https://www.baidu.com/'"><img src="xxx"></a> 这样写虽然解决了安卓下点击a标签不跳转的问题,但还是没有解决点击a标签,在手机真机上会调出手机键盘的行为 不过将a标签换

安装提示:该项不能再指定状态下使用,错误解决办法

java6安装有点问题,  就卸载了 想直接安装java7的 结果安装报错:该项不能再指定状态下使用 开始以为是没卸载干净, 于是 手动删除文件,清理注册表 , 各种方法都试过了  还是不能安装, 去百度看到有些人说下载个windows卸载清理软件,于是去下载 安装 发现也会报这个错. 无法安装 所以这肯定是系统问题了. 产生问题的原因 由于用户更改了管理员身份进入的密码造成的 解决方法: C:\Users\ 然后找到Crypto目录,全部删掉 我是搜索 C:\Users\  下所有Crypto

iOS开发UI篇-tableView在编辑状态下的批量操作(多选)

先看下效果图 直接上代码 #import "MyController.h" @interface MyController () { UIButton *button; } @property(nonatomic,strong)NSMutableArray *array;//数据源 @property (nonatomic,strong)NSMutableArray *selectorPatnArray;//存放选中数据 @end @implementation MyControlle

UIButton在Disabled状态下标题混乱的问题

最近开发中遇到的问题汇总 有段时间没有归纳开发中遇到的一些问题了,今天就写一下之前开发中遇到的几个问题.希望这 篇文章能让读者在以后的开发中少走弯路.本文将依次介绍<UIButton在Disabled状态下标题混乱的问题>.<含软连字符的字符串计算显示长度 的问题>和<UINavigationBar左右两边按钮可同时点击的问题>. UIButton在Disabled状态下标题混乱的问题 你应该知道,UIButton的Disabled状态下标题在没有设定的时候,取Norm

html 富文本编辑器相关--中文状态下输入@的问题

如何支持输入@可以[@群内人]的功能? 常规思路是   监听keydown 事件  的shift+2 document.getElementById('input-content').addEventListener('keydown', function (e) { if (CHATOBJ.groupType != 2) {//不是群消息 return; } //if (e.keyCode === 16) return; console.log('没有弹出联系人?:',e); if (e.sh

TIME_WAIT状态下,修改socket选项后,bind端口会失败

TIME_WAIT状态下,修改socket选项后,bind端口会失败,即使使用的是SO_REUSEADDR或者SO_REUSEPORT模式 ********************************* tcp        0      0 127.0.0.1:81                127.0.0.1:56850             TIME_WAIT ********************************* tcp        0      0 127.0.

Windows技巧|如何在Windows 10在锁屏状态下打开某种应用程序?

本文标签:    电脑技巧 Windows技巧 Win10的锁屏界面 互联网杂谈 在Win10的锁屏界面,右下角有三个图标,中间有个像时钟的图标就是所谓的"轻松使用"按钮,里面有讲述人.放大镜.屏幕键盘等功能,这些功能我们可以修改成我们常用的应用程序,这样将大大的方便我们的操作,那么该如何修改呢? 默认情况下在锁屏界面点击右下角中间的图标会弹出"轻松使用"菜单 具体方法如下: 1.在Cortana搜索栏输入regedit,按回车键进入注册表编辑器; 2.定位到:HK