我有一個數據下載過程在我的應用程序,通過點擊按鈕啓動。該操作發生在後臺線程上,因此用戶可以自由導航到其他視圖並按照自己的喜好進行操作。在alertView回調問題popToRootViewControllerAnimated
下載完成後,向用戶顯示警報,指出應用程序需要重新加載。單擊確定後,將運行alertView clickedButtonAtIndex方法。在這個方法裏我調用popToRootViewControllerAnimated。
如果我還沒有導航到其他視圖,並留在用戶發起下載的觀點,這工作!問題是,如果用戶已離開下載啓動的視圖並在「重新加載應用程序」警報上單擊確定,則什麼都不會發生。用戶不會重定向回根視圖控制器。它只是呆在原地...
任何人都可以幫忙嗎?我以錯誤的方式接近這個嗎?無論用戶點擊下載按鈕後導航到哪裏,我都需要一個重新啓動應用程序或返回到根視圖控制器的進程。
最壞的情況我會關閉應用程序並告訴用戶他們需要重新啓動才能應用更新。我寧願避開這一點,讓用戶留在應用程序。
感謝您的幫助。
UPDATE:
下面的代碼的要求:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex != 0) {
//User indicated that they want to restart the app so that they can apply the update
cameFrom = CAME_FROM_RESTART;
[self.navigationController popToRootViewControllerAnimated:NO];
}
一切都置於一個導航控制器下?任何情況下的根視圖控制器都是相對於當前視圖控制器的。 – FeifanZ 2011-05-06 16:34:41
請將代碼放回到根目錄。我懷疑你試圖使用的導航控制器在你引用它的上下文中是無效的。 – Rayfleck 2011-05-06 16:43:48
抱歉,雙後。我用代碼更新了這篇文章。 – kmehta 2011-05-06 18:09:54