我有一个包含7行的表视图,我想点击我的行并加载detailView(uiViewController)
我可以选择行,我可以看到登录控制台,但它从不加载详细信息视图
你能给我一些点击,有什么问题吗?#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
NSLog(@"selected rows");
MyBookDetailView *c = [[MyBookDetailView alloc] init];
[self.navigationController popToRootViewControllerAnimated:NO];
[self.navigationController pushViewController:c animated:YES];
}
我也尝试performSelectorOnMainThread,但它仍然只是可点击我加载我的视图控制器有问题,我也添加委托 - (void)viewDidLoad方法,
提前致谢!
lates code:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
MyBookDetailView *c = [[MyBookDetailView alloc] initWithNibName:@"MyBookDetailView" bundle:nil];
[self.navigationController pushViewController:c animated:YES];
}
答案 0 :(得分:1)
为什么你想要将带有导航控制器堆栈的所有控制器弹出到根控制器,同时想要推送新的MyBookDetailView(我希望它的基类是UIViewController)。
无论如何,MyBookDetailView *c = [[MyBookDetailView alloc] init];
也不适合你。因为UIViewController(MyBookDetailView)视图的 c 对象是nil。我建议使用断点跟踪执行堆栈和您尝试删除的变量,并在运行时添加,您将更好地了解程序中发生了什么。
我认为以下代码可能适合您,
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
MyBookDetailView *c = [[MyBookDetailView alloc] initWithNibName:@"WriteYourNibNameIfYouCreate" bundle:nil];
[self.navigationController pushViewController:c animated:YES];
}