Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone uitableView didSelectRowAtIndexPath“;所选行未加载详图视图;_Iphone_Objective C_Ios5_Uiviewcontroller_Uitableview - Fatal编程技术网

Iphone uitableView didSelectRowAtIndexPath“;所选行未加载详图视图;

Iphone uitableView didSelectRowAtIndexPath“;所选行未加载详图视图;,iphone,objective-c,ios5,uiviewcontroller,uitableview,Iphone,Objective C,Ios5,Uiviewcontroller,Uitableview,我有一个包含7行的表视图,我想单击我的行并加载detailView(uiViewController) 我可以选择行,我可以在控制台中看到日志,但它从不加载详细视图 你能给我一些提示吗?有什么问题吗 #pragma mark - Table view delegate - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselect

我有一个包含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方法中添加了委托

提前谢谢

最新代码:

- (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];

}

为什么要将navigationcontroller堆栈弹出到根控制器,同时要弹出新的MyBookDetailView(我希望它的基类是UIViewController)

无论如何,
MyBookDetailView*c=[[MyBookDetailView alloc]init]也不适用于您。因为UIViewController(MyBookDetailView)视图的c对象为零。我建议使用断点跟踪执行堆栈和试图删除的变量,并在运行时添加这些变量,这样可以更好地了解程序中发生了什么

我认为以下代码可能适合您

- (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];
}

为什么要将navigationcontroller堆栈弹出到根控制器,同时要弹出新的MyBookDetailView(我希望它的基类是UIViewController)

无论如何,
MyBookDetailView*c=[[MyBookDetailView alloc]init]也不适用于您。因为UIViewController(MyBookDetailView)视图的c对象为零。我建议使用断点跟踪执行堆栈和试图删除的变量,并在运行时添加这些变量,这样可以更好地了解程序中发生了什么

我认为以下代码可能适合您

- (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];
}

你能检查两件事吗:1。是否调用MyBookDetailView上的viewDidLoad方法?2.删除以下语句后是否可以重试:[self.navigationController popToRootViewControllerAnimated:NO];弹出并推到一起。如果navigationController不是nil。我建议操纵navigationController的viewControllers堆栈,以便一次处理它。@AC1我将NsLog放在ViewDiLoad MyBookDetailView上,但它从未打印过它,我还删除了此语句[self.navigationController popToRootViewControllerAnimated:NO];但是什么也没发生。很可能你的self.navigationController是零。你能核实一下吗?你自己是否嵌入了导航控制器?你能检查两件事吗:1。是否调用MyBookDetailView上的viewDidLoad方法?2.删除以下语句后是否可以重试:[self.navigationController popToRootViewControllerAnimated:NO];弹出并推到一起。如果navigationController不是nil。我建议操纵navigationController的viewControllers堆栈,以便一次处理它。@AC1我将NsLog放在ViewDiLoad MyBookDetailView上,但它从未打印过它,我还删除了此语句[self.navigationController popToRootViewControllerAnimated:NO];但是什么也没发生。很可能你的self.navigationController是零。你能核实一下吗?您自己是否嵌入到导航控制器中?谢谢您的回复,MyBookTableView是UITableViewController,MyBookDetailView是UIViewController您的代码不起作用这里是MyBookTableView,这里是detailView@Elnazzhahmehr,我正在谈论/关于MyBookDetailView类nib及其基础类。如果MyBookDetailView类有nib文件,那么您必须在分配时提到它的名称。是的,我会将最新的名称发送给您我仍然找到MyBookDetailView*c=[[MyBookDetailView alloc]init]。。。。其中是initWithNibName:bundle方法。感谢您的回复,MyBookTableView是UITableViewController,MyBookDetailView是UIViewController。您的代码不起作用。这里是MyBookTableView,这里是detailView@elnazzahamehr,我正在谈论/关于MyBookDetailView类nib及其基础类。如果MyBookDetailView类有nib文件,那么您必须在分配时提到它的名称。是的,我会将最新的名称发送给您我仍然找到MyBookDetailView*c=[[MyBookDetailView alloc]init]。。。。其中是initWithNibName:bundle方法。