IOS開發~靈活使用 dismissViewControllerAnimated / dismissModalViewControllerAnimated


當遇到:

 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];

        }

    }

 

本段代碼僅僅說明了實現的思想,具體的實現根據項目需求而定。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM