环境:XCODE:5.0.2 IOS7模拟器 ide
界面:使用storyboard 拖拽spa
简单应用:一个CoreData的CRUD用例。code
界面以下图(一个UITableViewController 列表 查询和删除 选择UITableViewCell后显示详细页面 一个UIViewController 进行编辑或添加数据)orm
TableViewController 点击 +号 Push跳转到 DetaiViewController;选择Cell后也Push到DetailViewController(identifier为:detailViewByCell)跳转blog
都用连线实现。it
在页面跳转到的时候出现如上报错,致使 导航子视图可能损坏 。io
根据错误信息在DetaiViewController里输出导航的子视图table
NSLog(@"%@",self.navigationController.viewControllers);form
输出:class
发现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; } }