我第二次嘗試呈現我的視圖控制器時遇到異常,我希望這個列表中的人員可以說明我在做什麼錯...presentViewController:'找不到導航控制器的segue' - 如何處理來自同一個ViewController的2個segges
我的故事板有一個導航控制器加載一個CategoryViewController。在CategoryViewController UI(一個UICollectionViewController)中,segue連接到單元以加載另一個視圖控制器。
當單擊該單元格發生時,performSegue我CategoryViewController被稱爲(到目前爲止好),然後我重新加載相同視圖控制器如下:
//check if item has a second category or not
if (/*need to reload same controller with different data*/) {
//Load list of items for that category
//CategoryViewController *v= [segue destinationViewController];
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UINavigationController *vc = [sb instantiateViewControllerWithIdentifier:@"categoryViewID"];
CategoryViewController *cvc = (CategoryViewController*)vc;
// do some into on cvc here
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self.navigationController pushViewController:vc animated:YES];
}
能正常工作。現在,一旦加載並顯示了CategoryViewController的第二個實例,並且單擊一個單元格,再次調用Segue並執行if語句的第二部分,我嘗試加載另一個viewController,執行以下代碼行:
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UINavigationController *vc = [sb instantiateViewControllerWithIdentifier:@"categoryViewerID"];
CategoryViewerController *cvc = (CategoryViewerController*)vc;
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self.navigationController presentViewController:vc animated:YES completion:NULL];
我的新的viewController被實例化,但在那之後,我得到以下運行時錯誤: 原因:「找不到賽格瑞導航控制器‘showCategoryList’。只有當源控制器由UINavigationController的實例管理時,才能使用推塞網。
任何想法,我可能做錯了什麼?
我能夠在兩者之間做出的唯一區別是,在一個循環中你推動視圖控制器,而在另一個循環中,你正在呈現它..所以嘗試推動視圖控制器的後期部分,你得到的異常! – Harsh
不對不起 - 試過,但得到了同樣的問題。不知何故,我的第一個電話,推動新的視圖控制器必須搞亂層次結構 - 我試圖添加一個新的segue加載故事板中的新控制器視圖,但我得到同樣的問題,然後... – Xavier