iOS開發之tabBarController頁面邏輯處理(二級頁面退出重新登錄,tabBarController加載父控制器)

這個聽起來有些拗口,我們用圖片說話

Paste_Image.png

我們暫且將

"個人中心"稱為A控制器;
"設置頁面"稱為:B控制器;
"登錄頁面"稱為:C控制器.

需求描述:

A--->pushViewController---->B
B--->presentModalView--->C
如果當前是頁面B,點擊"退出登錄",然后再點擊頁面C的登錄,是跳到A還是B呢?

Paste_Image.png

答案:頁面B

因為這里的頁面C是presentModal(模態出來的),點擊登錄后會將頁面C給dismiss掉,通過App的周期生命可以知道,在頁面B點擊"退出登錄"那一刻,B依舊還在棧里邊,沒有被移除,只是被頁面C所覆蓋;

需求實現:

從頁面A進入頁面B之后,點擊"退出登錄"彈出頁面C,點擊"登錄",回到頁面A;

思路方法:

在彈出頁面C的回調方法中,加入一個異步耗時操作,偷偷的從頁面B跳到頁面A,等到C重新登錄,自然就看到頁面A了;

Paste_Image.png

關鍵代碼

//在模態窗口的回調中加入以下代碼:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{  
    // 耗時的操作  
    dispatch_async(dispatch_get_main_queue(), ^{  
        // 更新界面  
    });  
}); 
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容