Objective c 正在获取过渡视图控制器和应用程序崩溃的警告
当我试图从ListViewController打开详细视图(使用DidSelectRowatinex)时,会收到如下警告 在意外状态下完成导航转换。导航栏子视图树可能已损坏。应用程序崩溃后出现错误-由于未捕获的异常“NSInvalidArgumentException”终止应用程序,原因:“无法将自身添加为子视图” 谢谢你的帮助 我的应用程序层次结构是Objective c 正在获取过渡视图控制器和应用程序崩溃的警告,objective-c,ios7,uinavigationcontroller,terminate,Objective C,Ios7,Uinavigationcontroller,Terminate,当我试图从ListViewController打开详细视图(使用DidSelectRowatinex)时,会收到如下警告 在意外状态下完成导航转换。导航栏子视图树可能已损坏。应用程序崩溃后出现错误-由于未捕获的异常“NSInvalidArgumentException”终止应用程序,原因:“无法将自身添加为子视图” 谢谢你的帮助 我的应用程序层次结构是 UIWindow 超宽带控制器 -(void)tableView:(UITableView *)tableView didSelectRow
- UIWindow
- 超宽带控制器
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; XXXInfo *dInfo=[_SDArray objectAtIndex:indexPath.row]; DetailViewController *detail1=[DetailViewController viewControllerWithInfo:dInfo]; [self.navigationController pushViewController:detail1 animated:YES]; }
- 导航控制器
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; XXXInfo *dInfo=[_SDArray objectAtIndex:indexPath.row]; DetailViewController *detail1=[DetailViewController viewControllerWithInfo:dInfo]; [self.navigationController pushViewController:detail1 animated:YES]; }
- UIViewController
- 导航控制器
- 超宽带控制器
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
XXXInfo *dInfo=[_SDArray objectAtIndex:indexPath.row];
DetailViewController *detail1=[DetailViewController viewControllerWithInfo:dInfo];
[self.navigationController pushViewController:detail1 animated:YES];
}
//导航到详细信息的静态方法
+(DetailViewController *)viewControllerWithInfo:(XXXInfo *)info
{
DetailViewController *detail=[[DetailViewController alloc]initWithNibName:@"DetailViewController" bundle:nil];
detail.detailInfo=info;
NSLog(@"info%@ ",info);
return detail;
}
动画要取消选择所选行,需要短时间来设置动画,然后会导致冲突,有两种方法可以解决此问题:
在DIDSELECTROWATINDEX中添加代码我已更新我的问题@trick14请看这个你在用NavigationController导航栏做什么吗?@技巧你不应该要求OP显示(类、控制器名称)所有内容,这是不必要的。它是可见的,任何人都可以轻松理解。嗨,代码看起来不错,但是,如果您想在选定行时将视图推入导航堆栈,则应在取消行索引路径处设置“动画:否”,或者不应使用该行代码,因为动画需要持续时间才能运行,这可能会导致冲突。