您的位置:首页 > 移动开发 > IOS开发

IOS学习-报错误 Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.

2014-10-01 17:31 597 查看
环境:XCODE:5.0.2 IOS7模拟器

界面:使用storyboard 拖拽

简单应用:一个CoreData的CRUD用例。

界面如下图(一个UITableViewController 列表 查询和删除 选择UITableViewCell后显示详细页面 一个UIViewController 进行编辑或添加数据)



TableViewController 点击 +号 Push跳转到 DetaiViewController;选择Cell后也Push到DetailViewController(identifier为:detailViewByCell)跳转

都用连线实现。





在页面跳转到的时候出现如上报错,导致 导航子视图可能损坏 。

根据错误信息在DetaiViewController里输出导航的子视图

NSLog(@"%@",self.navigationController.viewControllers);

输出:


发现DetailViewController 有2个 很明显跳转的时候 出现问题

原因是UITableViewCell 在选择的时候 用连线的时候直接PUSH到了DetailViewController,

而在代码里也实现了跳转

[self performSegueWithIdentifier:@"detailViewByCell" sender:p];

去掉此处代码,至于需要传参可在prepareForSegue中传参

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

if ([segue.identifier isEqualToString:@"detailViewByCell"]) {
TRDetailViewController* detailVC=[segue destinationViewController];
Person* p=self.persons[ [self.tableView indexPathForSelectedRow].row];
detailVC.editPerson=p;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐