【发布时间】:2014-01-08 12:13:58
【问题描述】:
我的 iPhone 应用程序上有一个自定义的 UITableViewCell,我有一个自定义的 setSelected:animated 方法。我的应用程序在 iPhone 上运行良好,但是,我开始将我的应用程序移植到 iPad。我已经复制了完全相同的情节提要,没有进行任何更改,但是现在当我选择我的单元格时,我的 setSelected:animated 方法被调用了两次(使用相同的参数)。我可以通过检查是否有 iPad 等来“处理”这种情况,但这是一种不好的做法。它在 iPhone 上被调用一次但在 iPad 上被调用两次的原因可能是什么? (均为 iOS 7.0.3)表格视图的属性完全相同(我复制了 iPhone 故事板文件)。
以下是相关代码:
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
isSelected = selected;
[self setNeedsDisplay];
if(selected){
SocialMatchAppDelegate *del = (SocialMatchAppDelegate*)[UIApplication sharedApplication].delegate;
del.selectedUser = self.user;
[del.resultViewController performSegueWithIdentifier:@"viewProfile" sender:self];
}
}
【问题讨论】:
-
你能发布你的代码进行分析吗?
-
我添加了
setSelected:animated代码 -
@canpoyrazoğlu 该代码没有任何问题,因此我认为这与情节提要有关。
-
我已经从 iPhone 复制了确切的故事板。按文件复制粘贴。它(表格视图或表格视图单元格)在 iPhone 和 iPad 上的行为不同,即使使用完全相同的 iOS 版本(我使用的是模拟器)
-
我有完全相同的问题,在 swift 中完成了类似的代码。我还有一个通用版本的故事板,所以 iPhone 和 iPad 的故事板都相同,我还发现 setSelected 在 iPad 上被调用了两次 - 如果我将模拟器更改为 iPhone(任何一个).. 问题不存在.. 避免双重选择集的最佳方法是什么?
标签: ios cocoa-touch uitableview ios7