0

我有一个 uitableview,我想在按下它时打开一个新的 viewController。

我正在使用在其他类中有效的代码,但在这个类中没有。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    NSLog(@"Row selected:%d",indexPath.row);
    UIStoryboard * storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    [[self navigationController] pushViewController:[storyBoard instantiateViewControllerWithIdentifier:@"SingleCamera"] animated:YES];

}

我不知道为什么,因为这是我迄今为止使用的代码。它不会播放我输入的任何标识符,它不会去任何地方。

我也试过这个:

[self performSegueWithIdentifier:@"SingleCamera" sender:tableView];

但我收到NSInvalidargument错误

编辑:我的项目的结构是这样的:我有一个导航控制器和一个初始视图 A。从视图 A,我将使用完全相同的代码查看 B。从视图 B 我要查看 C,在故事板内部使用 segue 模式模式,在视图 C 中是使用上述代码的 tableviewcontroller。

4

1 回答 1

1

改为这样写:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"Row selected:%d",indexPath.row);
    UIViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SingleCamera"];
    [[self navigationController] pushViewController:viewController animated:YES];
}

并在该行设置断点pushView...以查看 viewController 是否已实例化。

编辑:

关于performSegue..., 让你在故事板中有那个 segue。

于 2012-12-30T12:34:17.407 回答