2013-05-12 36 views
-4

我很新的Xcode,我想找到一種方式來顯示不同的東西,如果用戶登錄到我的應用程序,或者如果他不是。有條件地顯示一個ViewController Xcode - iOS應用程序

我有一個選項卡式應用程序。經過身份驗證的用戶應直接訪問選項卡式視圖。但是不應該登錄認證頁面的用戶。

我的猜測是,我需要這樣的:

if (user) { 
    // Do stuff if user logged in. 
} else { 
    // Display the authentication page. 
} 

但我對如何做到這一點,我沒有找到任何東西都不知道。我正在尋找提示。

編輯:

我的問題是不是我怎麼能知道,如果一個用戶進行身份驗證或沒有,但我怎麼能在其他情況下顯示的情況下的特定頁面和其他頁面。

在哪裏,我應該怎麼寫代碼,知道我已經知道了如何通過身份驗證的用戶區分:

if (user is authenticated) { 
// SHOW FIRSTVIEWCONTROLLER 
    } else { 
// SHOW SECONDVIEWCONTROLLER 
    } 

編輯2:

我有一個標籤的應用,具有3個標籤和mainstoryboard(沒有xibs)。我想添加一個頁面,在標籤頁面之前,用戶可以進行身份​​驗證。

所以我需要在一個條件上顯示這個viewController。如果用戶未通過身份驗證,則顯示該頁面,如果他是我直接顯示選項卡式頁面。

同樣,我不想知道如何區分用戶是否已通過身份驗證,我只是想知道如果條件滿足時如何顯示ViewController。

+1

登錄到什麼,到底是什麼? – 2013-05-12 15:18:46

+0

登錄到我的應用程序。我希望有一個認證頁面,只有在第一次出現時纔會顯示用戶會話,以便在用戶返回時直接顯示選項卡式部分。 – Marcolac 2013-05-12 15:21:31

+0

您需要提供更多詳細信息。這個問題太籠統了。也許你可以看看'NSUserDefaults' – 2013-05-12 15:37:36

回答

2

我會在第一個選項卡中顯示控制器的viewDidAppear方法的身份驗證頁面。如果使用presentViewController執行此操作:animated:completion:將動畫參數設置爲NO,則模式視圖將成爲用戶看到的第一個東西。因此,您可以將該邏輯放在該viewDidAppear方法中以確定是否執行該演示。

+0

這就是我正在尋找的那種提示。非常感謝你 ! – Marcolac 2013-05-12 16:39:29

+0

我正在這樣做,但我想離開底部的標籤欄,以便用戶只有在需要時才登錄。所以我使用推式故事板過渡而不是模式。問題是,如果用戶再次點擊該選項卡,則不調用「viewDidAppear」方法。我如何防止這種情況? – macool 2013-12-10 02:57:01

+0

@macool,我不確定我瞭解你的關注。你是說這個viewDidAppear沒有被調用,但你希望它是? – rdelmar 2013-12-10 03:25:28

1

爲此,您需要使用Apple Documentation here)。要使用這個類,您可以保存一個值 - 一個布爾值,數字,字符串或一些對象,這些值可以在用戶下次打開您的應用時讀取。

您可以使用這樣的事情要告訴你的應用程序,用戶已經登錄

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"loggedIn"]; 

然後在用戶輸入您的應用程序只是看看他在登錄下一次:

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"loggedIn"]) { 
    //show information 
} else { 
    //Show Login Screen 

如果您需要存儲實際憑據,只需使用setObject: forKey:並使用objectForKey:回讀對象。

+0

非常感謝。但我認爲我的問題沒有得到理解。我知道如何區分用戶是否已通過身份驗證。我只是不知道該怎麼做才能告訴「如果他是,顯示此頁面,如果他不顯示此頁面」。 – Marcolac 2013-05-12 15:48:59

+0

然後請參閱下面的答案。 – 2013-05-12 16:31:23

相關問題