单击tableviewcell时按下视图

时间:2014-11-08 17:51:41

标签: ios objective-c uitableview

当我点击tableview的单元格时,我想推送一个视图。代码如下:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (tableView.tag == todoTableViewTag) {
        NSLog(@"aa");
        ViewControlleraaa* testvc = [[ViewControlleraaa alloc] initWithNibName:@"ViewControlleraaa" bundle:nil];    
        [self.navigationController pushViewController:testvc animated:YES];
    }
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

但它根本不起作用。

我有 ViewControlleraaa.h ViewControlleraaa.m和ViewControlleraaa.xib 但除了创造它们我什么都没做。

问题出在哪里?

3 个答案:

答案 0 :(得分:1)

从表视图控制器创建一个'generic'segue到ViewControlleraaa并使用'performSegueWithIdentifier'。如果无法执行该方法,那么您可能需要尝试'presentViewController'。

答案 1 :(得分:1)

检查self.navigationController不是nil然后它会工作正常。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

        ViewController *vc = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];    
        [self.navigationController pushViewController:vc animated:YES];
}

答案 2 :(得分:0)

尝试从表视图控制器创建手动segue到ViewControlleraaa。然后,正如我上面的回答者所说,你可以使用performSegueWithIdentifier来调用segue。如果您需要表视图控制器将任何数据推送到ViewControlleraaa,您可以使用“prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender”方法。 “segue”的destinationViewController属性是ViewControlleraaa。

以下是YouTube视频的链接,以防您需要任何其他帮助:https://www.youtube.com/watch?v=XApYtAlRDVE