我正在編寫一個遊戲,用戶只有在有活動的Internet連接時才能玩遊戲。如果互聯網狀態發生變化,我想關閉所有ViewController並返回到登錄屏幕。這裏的層次:當可達性發生變化時連續解除ViewControllers
我的應用代表由顯示LoginViewController:
self.window.rootViewController = loginViewController;
[self.window makeKeyAndVisible];
在這裏,用戶登錄在登錄時我檢查連接和處理錯誤。如果登錄成功loginViewController呈現mainViewController使用
[self presentModalViewController:self.mainViewController animated:YES];
然後mainViewController呈現其它控制器,其可以呈現其他控制器等等。禮物和解僱日常工作正常。
現在,如果可達性狀態發生變化,我想顯示警報並強制應用程序返回到登錄屏幕。我知道如何傾聽這些通知並採取恰當的行動。這是有據可查的:)
我如何解僱所有視圖控制器,直到我登陸登錄屏幕?我是否需要在所有視圖控制器中收聽通知並單獨解除它們?有什麼方法在父級(如應用程序委託)中捕獲通知,並從那裏解除所有視圖控制器(沒有事先引用所有視圖控制器)?
很顯然,我沒有使用navigationController所以
[self.navigationController popToRootViewControllerAnimated:NO];
是不可能的。
編輯:或者,我可以關閉並釋放所有內容並從頭開始,就像應用程序啓動時一樣。這是一個更好的方法嗎?我到底該怎麼做?
謝謝。
如果可達性確實有效,它會更好。 –
事實上它是否應該啓動通知,或者在不應該引發不必要的時候啓動通知?對我而言,前者仍然可以管理,但後者會破壞應用程序體驗。 –
這兩個..Id進入具體細節,但它往往會導致火焰戰爭的人認爲它的工作原理,它沒有,搜索因此,有許多關於可達性的討論。 –