[英]UIViewController how to jump to grandparent view?
我有3個視圖,分別稱為A,B和C。它們之間的主題是“模態呈現”。 dismissViewControllerAnimated
可用於跳回到父視圖控制器,但是它是否有辦法直接從C跳到A?
如果使用情節提要,則可以使用展開搜索來備份視圖控制器層次結構中的多個步驟。
- (IBAction)unwind:(UIStoryboardSegue *)segue
的形式定義一個方法。 它需要采用segue作為參數,而不僅僅是任何id
發送者。 通過遍歷父項並呈現視圖控制器層次結構來放松工作,直到他們找到實現所選方法的控制器為止。 您不必在此方法中放置任何代碼; 僅僅擁有一個空的身體就足夠了。 情節提要找到這種方法后,它將彈出並關閉視圖控制器,直到顯示實現該方法的視圖控制器為止。
如果您想直接跳到A,而A是rootViewcontroller,則可以在C控制器中使用此代碼
self.navigationController?.popToRootViewControllerAnimated(true)
但是,如果要將某些數據從C控制器傳遞到A控制器,則必須使用Segue,所有這些都在navigationController類中提及,請參閱: https : //developer.apple.com/library/ios/documentation/WindowsViews/Conceptual /ViewControllerCatalog/Chapters/NavigationControllers.html
將導航堆棧用於Push和Pop ViewController,如果需要顯示和關閉viewController,則可以嘗試將UIAnimation與Navigation Push和Pop堆棧一起使用,
然后,您可以使用以下代碼輕松導航至Parent ViewController。
[self.navigationController popToViewController:self.navigationController.viewControllers [self.navigationController.viewControllers.count-3]動畫:是];
希望對您有所幫助。 !!!!!
目標-C
UIViewController *prevVC = [self.navigationController.viewControllers objectAtIndex:IndexViewOfA];
//you get index of view (A,B,C) from array self.navigationController.viewControllers
[self.navigationController popToViewController:prevVC animated:YES];
這可能對您有幫助:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.