无法识别的选择器发送到destinationViewController

时间:2014-03-19 11:10:18

标签: ios objective-c cocoa-touch uitableview segue

我的应用中的{p> UITableView是使用NSFetchedResultsController进行管理的,我想实现Master-Detail行为,但每次点击一个单元格我都会收到-[UIViewController setActivity:]: unrecognized selector sent to instance 0x176a7660错误...

我不知道发生了什么,因为我的代码基于Apple的Master-Detail演示应用程序。 这是prepareForSegue

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"activitySegue"]) {
        ActivityDetailsViewController *advc = segue.destinationViewController;
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        Activity *activity = (Activity *)[[self fetchedResultsController] objectAtIndexPath:indexPath];
        [advc setActivity:activity];
    }
}

当然, destinationViewController 中声明了@property。我认为这个NSManagedObject可能存在某些内容并且没有正确传递到目的地......但这只是我的猜测。

2 个答案:

答案 0 :(得分:1)

看起来未设置详细视图控制器的故事板中视图控制器类的名称,因此创建了UIViewController的实例而不是ActivityDetailsViewController的实例。

将故事板中视图控制器的名称设置为ActivityDetailsViewController

答案 1 :(得分:0)

我认为这一行有问题 Activity *activity = (Activity *)[[self fetchedResultsController] objectAtIndexPath:indexPath];这是返回的活动对象吗?