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