我从表格视图单元格(在主视图控制器中)创建了一个segue到视图控制器,并给segue命名了#34; ShowDetail"。在主视图控制器中的prepareForSegue中,我设置了此代码,但是如果我触摸主列表中的表视图单元格,则没有任何反应,甚至第一个日志语句也不会被触发。当我右键单击主视图控制器中的表格视图单元格时,它显示已经连接了一个segue。
是否需要在主视图控制器中实现一种方法,以使单元响应触摸?还是有另外的解释为什么会发生这种情况?
-prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"prepare for segue");
if ([[segue identifier] isEqualToString:@"ShowDetail"]){
NSLog(@"in segue to display edit");
DisplayEditViewController *devc = (DisplayEditViewController *)[segue destinationViewController];
// devc.delegate = self;
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
Event *selectedJoke = (Event *)[self.fetchedResultsController objectAtIndexPath:indexPath];
devc.currentJoke = selectedJoke;
devc.mood = selectedJoke.mood;
devc.delegate = self;
devc.mnemonicField = selectedJoke.mnemonic;
devc.jokeField = selectedJoke.joke;
}
更新2
这是项目的压缩版本。如您所见,我的项目允许我添加新条目但不在DisplayEditViewController中显示它们https://dl.dropboxusercontent.com/u/10328969/preppyspeech.zip
更新3
即使我在masterviewcontroller中实现didSelectRowAtIndexPath,当我点击单元格时也没有调用它(didSelectRowAtIndexPath)。在此处查看更新的项目https://dl.dropboxusercontent.com/u/10328969/preppyspeech2.zip
答案 0 :(得分:6)
我见过你Project,有一个简单的错误,Selection type
中UITableView
的{{1}}设置为MasterViewController
,因此No Selection
方法适用于UITableView不起作用,从下面的图像更改
它有效。
干杯。