在我的應用程序中,我正在執行UINavigationController
。有幾個UIViewControllers
被推入堆棧。「彈出」UINavigationController中的幾個視圖控制器堆棧
當我到達最後一個,我希望(用戶操作)所有的UIViewControllers彈出,除了第一個UIViewController
。我怎麼做?
我明白如何彈出最後一個,但我如何指示所有以前的那些也不要忽略?
在我的應用程序中,我正在執行UINavigationController
。有幾個UIViewControllers
被推入堆棧。「彈出」UINavigationController中的幾個視圖控制器堆棧
當我到達最後一個,我希望(用戶操作)所有的UIViewControllers彈出,除了第一個UIViewController
。我怎麼做?
我明白如何彈出最後一個,但我如何指示所有以前的那些也不要忽略?
您可以嘗試UINavigationController class的消息popToRootViewControllerAnimated:
,popToViewController:animated:
和popViewControllerAnimated:
。
在你的情況下,它是真正有用的使用popToRootViewcontrollerAnimated:
艾琳的建議,但如果有人需要彈出控制器的確切數字,然後下面的代碼可能是有用的:
- (void) popControllersNumber:(int)number
{
if (number <= 1)
[[self navigationController] popViewControllerAnimated:YES];
else
{
NSArray* controller = [[self navigationController] viewControllers];
int requiredIndex = [controller count] - number - 1;
if (requiredIndex < 0) requiredIndex = 0;
UIViewController* requireController = [[[self navigationController] viewControllers] objectAtIndex:requiredIndex];
[[self navigationController] popToViewController:requireController animated:YES];
}
}
使用
TravelViewController *travelView = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count-3];
[self.navigationController popToViewController:travelView animated:YES];
愛這個答案! –
+1,'popToRootViewControllerAnimated:'是他正在尋找的東西。 – sergio
這不會卸載堆棧上的viewcontrollers,雖然...我需要做什麼,如果我想這樣做? – SuperString