当我点击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 但除了创造它们我什么都没做。问题出在哪里?
答案 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