2011-05-06 68 views
0

我有一個數據下載過程在我的應用程序,通過點擊按鈕啓動。該操作發生在後臺線程上,因此用戶可以自由導航到其他視圖並按照自己的喜好進行操作。在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]; 


    } 
+0

一切都置於一個導航控制器下?任何情況下的根視圖控制器都是相對於當前視圖控制器的。 – FeifanZ 2011-05-06 16:34:41

+0

請將代碼放回到根目錄。我懷疑你試圖使用的導航控制器在你引用它的上下文中是無效的。 – Rayfleck 2011-05-06 16:43:48

+0

抱歉,雙後。我用代碼更新了這篇文章。 – kmehta 2011-05-06 18:09:54

回答

2

您可以使用setViewController:動畫:代替popToRootViewControllerAnimated。當最後一個沒有工作給我我使用setViewController:animated:並且工作。我最後一次使用帶有動畫YES的setViewController時,它會產生錯誤。轉發。如果它發生在你嘗試動畫:沒有

1

你也可以嘗試設置一個通知發送到你的單身應用程序委託,當下載完成或按鈕單擊確定或任何時候調用。然後在這個回調中,你可以重新加載到你想要的任何視圖控制器。

+0

我是一個iOS新手。你能描述一下如何做到這一點嗎?我的警報對象中是否有某些東西需要指定,告訴它將回調路由到我的應用程序委託? – kmehta 2011-05-06 18:39:01