2013-05-29 31 views
-1

我試圖讓從URL使用NSURLConnection那麼它保存在本地的應用程序,並使用UIDocumentInteractionController目標C:顯示隱藏按鈕,下載後,並保持它

打開它的iBooks下載PDF文件異步連接的應用程序

我已經設法完成所有下載,保存並將其打開到iBooks。 我有10個「下載」按鈕(如圖所示)和10個「查看」按鈕(隱藏)。 現在我想要做的是在下載後顯示「查看」按鈕,我已經設法通過在下載完成後將「查看」按鈕的隱藏屬性設置爲NO。 正是這種委託- (void)connectionDidFinishLoading:(NSURLConnection *)connection

下,但是,什麼情況是,每當我終止應用程序在後臺並重新啓動它的一切恢復到原來的應用程序。我將如何能夠做到我想要提出的結果?我聽說過NSUserDefaults,但我不知道如何使用它,我在Objective C中是個小菜鳥。

+0

-1你的應用到下一個。無論您是保存按鈕的狀態還是用戶最喜歡的顏色都不相關。 –

回答

0

NSUserDefaults是一個簡單的靜態字典,可以在整個應用程序中訪問。在這裏,你會想設置下載(或多個)後您的appDelegate的關鍵是/齊全:

[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"finishedDownloads"]; 

然後,您可以使用該值來確定如何處理在應用程序啓動這些按鈕做:

if([[NSUserDefaults standardUserDefaults] boolForKey:@"finishedDownloads"] == TRUE) 
{ 
    //show view buttons 
} else { 
    //show download buttons 
} 

這樣做,檢查你想看看是否能在關鍵的存在NSUserDefaults的前:

if(![[NSUserDefaults standardUserDefaults] boolForKey:@"finishedDownloads"]) 
    [[NSUserDefaults standardUserDefaults] setBool:FALSE forKey:@"finishedDownloads"]; 

這只是確保沒有檢查它的值之前,一鍵設置。您可以將此行放在- (void)applicationDidFinishLaunching方法中。

在參考這種應用專門

您可以在不降低你的問題,真正的問題,這就是如何從一個使用的保存狀況做這樣的事情

ViewController *vc = [[ViewController alloc] init...]; 

if([[NSUserDefaults standardUserDefaults] boolForKey:@"finishedDownloads"] == TRUE) 
{ 
    //show view buttons 
    [vc createViewButtons]; 
} else { 
    //show download buttons 
    [vc createDownloadButtons]; 
} 
+0

我可以把你提到的第一行代碼放在connectionDidFinish上嗎?那麼條件將在appDelegate.m? –

+0

我的按鈕在我的ViewController文件中以編程方式聲明,我將如何在AppDelegate中訪問它? –

+0

您可以在ViewController文件中創建兩個方法來創建按鈕,而不是先創建它們,然後隱藏它們。您可以創建視圖並根據該條件調用適當的方法。 – jfuellert