UITableViewCell无法识别的选择器发送到实例

时间:2014-11-09 21:29:23

标签: xcode uitableview button segue

我正在为我的UITableView创建表格视图和自定义视图。基本上我有FirstViewController与表视图和CustomTableViewCell。在自定义单元格中,我将所有控件链接到头文件并在具有UITableViewCell的超类文件中实现。我正在创建一个按钮,并希望以编程方式使用" instantiateViewControllerWithIdentifier"为了更加灵活的未来。这有问题:

正在初始化按钮

[self.playButton addTarget:self action:@selector(NavigationMethod) forControlEvents:UIControlEventTouchUpInside];

NavigateMethod

 UIViewController *secondViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]instantiateViewControllerWithIdentifier:@"SecondViewController"];
 [(FirstViewController*) presentViewController:secondViewController animated:YES completion:nil];

因为所有内容都在UITableViewCell而不是UIViewController。

1 个答案:

答案 0 :(得分:0)

你在这里打破了模型视图控制器的方法......在FirstViewController中你应该有

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    MYCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (!cell)
    {
        cell = [[MYCustomTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; // might not be UITableViewCellStyleDefault
        [cell.playButton addTarget:self action:@selector(navigationMethod) forControlEvents:UIControlEventTouchUpInside];

    }


    // all indexPath based tableViewCell changes here

    return cell;
}

现在-(void)navigationMethod也可以进入你的FirstViewController类。这将允许你打电话

[self presentViewController:secondViewController animated:YES completion:nil];

[self.navigationController presentViewController:secondViewController animated:YES completion:nil];

只是添加以及..发送到实例的无法识别的选择器意味着在这种情况下,在UITableViewCell子类中找不到方法NavigationMethod