这不是segue标识符拼写错误之类的问题。当我点击tableViewController中的单元格时,prepareForSegue
方法实际上并没有被调用。控制语句之前的日志语句在我添加新单元格时记录,但在我点击单元格时却没有。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"prepare for segue"); //not getting logged if I tap on an existing cell
if ([[segue identifier] isEqualToString:@"AddTopic"]) {
//
works fine to add a new cell
}
if ([[segue identifier] isEqualToString:@"ShowDetail"]){
NSLog(@"in segue to display edit");
MMDisplayEditViewController *devc = (MMDisplayEditViewController *)[segue destinationViewController];
您可以在下面的图像中看到,在表视图控制器中,从单元格到显示编辑视图控制器设置了推送转场。为什么可能不会调用prepareForSegue?请注意,我正在为表视图单元格使用自定义类,但我不知道这会影响任何内容。更新:我在主表视图控制器的viewDidLoad中注册了自定义单元格。
- (void)viewDidLoad
{
[super viewDidLoad];
[self.tableView registerClass:[MMTableViewCell class] forCellReuseIdentifier:@"Cell"];