問題:數組
你想要直接控制導航控制器中的的特性動畫
解決方法:spa
使用UINavigationController類中的ViewControllers屬性來訪問和修改與導航控制器相關的視圖控制器對象
- (void) goBackci
{rem
/*獲得控制器的當前數組*/it
NSArray *currentControllers = self.navigationController.viewControllers;io
/*在這個數組以外建立一個可變數組*/table
NSMutableArray *newControllers = [NSMutableArray arrayWithArray: CurrentControllers];ast
/*從數組中刪除最後一個對象*/
[newControllers removeLastObject];
/* 分配這個數組到導航控制器*/
self.navigationController.viewController = newControllers;
}
您能夠以從與當前視圖控制器相關聯的導航控制器的層次彈出最後一個視圖控制器調用內部的任何視圖控制器這種方法。
討論:
本的UINavigationController類的一個實例持有的UIView控制器對象的數組。檢索該數組後,您能夠在您但願的任何方式操縱它。舉例來講,你能夠從數組中的任意位置刪除一個視圖控制器。
經過分配一個數組來導航控制器的viewControllers財產直接操做導航控制器的視圖控制器將提交操做,無需過渡/動畫。若是您但願操做進行動畫,使用setViewControllers :動畫:在的UINavigationController類的方法,以下面的代碼:
- (void) goBack
{
/*獲得控制器的當前數組*/
NSArray *currentControllers = self.navigationController.viewControllers;
/*在這個數組以外建立一個可變數組*/
NSMutableArray *newControllers = [NSMutableArray arrayWithArray: CurrentControllers];
/*從數組中刪除最後一個對象*/
[newControllers removeLastObject];
/* 分配這個數組到導航控制器*/
[self.navigationController.viewController = newControllers animated:YES];
}