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

环境: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;
    }
   
   
}

 

转载于:https://www.cnblogs.com/zhangqifeng/p/4003410.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值