我正在關注this答案,以便在UINavigationController中「釋放」我之前的視圖控制器。使用自定義Segue流行UIViewController?
它工作正常,但彈出部分是我難以開始工作的代碼。基本上我的應用程序是這樣工作的。它從一個主菜單(視圖1)開始,然後推到視圖2,並使用自定義push segue來查看視圖3.現在我想使用不同的自定義視圖,現在從彈出視圖3到視圖2。但是,通過使用下面的代碼,它很快地彈出到視圖1,然後最終推到視圖2.它看起來像視圖控制器轉換是不自然的,我只是想實現通常的彈出轉換,而不是通過使用自定義的繼續以「釋放」源視圖控制器。
這是我的代碼,我現在使用無濟於事:
- (void)perform {
// Grab Variables for readability
UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
UIViewController *destinationController = (UIViewController*)[self destinationViewController];
UINavigationController *navigationController = sourceViewController.navigationController;
// Get a changeable copy of the stack
NSMutableArray *controllerStack = [NSMutableArray arrayWithArray:navigationController.viewControllers];
// Replace the source controller with the destination controller, wherever the source may be
[controllerStack addObject:destinationController];
// Assign the updated stack with animation
[navigationController setViewControllers:controllerStack animated:YES];
}
有什麼我做錯了嗎?
你試過[navigationController pushViewController:destinationController animated:YES]; –
@NiravDoctorwala是的,但是這並沒有解決問題。另一個問題是我特別尋找「流行」動畫,而不是「推動」。 –
http://stackoverflow.com/questions/10281545/removing-viewcontrollers-from-navigation-stack –