當遇到:
A presentViewController B , B presentViewController C, C presentViewController D,問如何從D一下子回到A,麻煩一點的辦法就是一級一級的dismiss。
下面來說說我的辦法:
首先,實現 BaseViewController 作為所有視圖控制器的基類,然后在基類中實現返回最下層viewController的辦法(注意:最底層是UIViewController,所有BaseViewController都放在其上邊!):
- (void) turnToGame
{
UIViewController *viewController = self;
while (viewController.presentingViewController)
{
if ([viewController isMemberOfClass:[BaseViewController class]]) // 直到找到最底層為止
{
viewController = viewController.presentingViewController;
}
else
{
break;
}
}
if([[[UIDevicecurrentDevice]systemVersion]floatValue] >=6)
{
if (viewController)
{
[viewController dismissViewControllerAnimated:YEScompletion:nil];
}
}
else
{
if (viewController)
{
[viewController dismissModalViewControllerAnimated:YES];
}
}
}
本段代碼僅僅說明了實現的思想,具體的實現根據項目需求而定。