它看起來像你是一個良好的開端。既然你有一個tabbar設計,你必須做出如何呈現登錄頁面的選擇,以及何時你會這樣做。
您必須在顯示標籤欄之前顯示它,或者將邏輯放入第一個視圖控制器以啓動登錄過程。還有其他方法,但它們變得更加複雜,我現在想給你基本的選擇。
這是我推薦的一般概念。
a)在某處創建持久存儲變量以確定用戶是否登錄。
b)在視圖將加載方法的第一個視圖控制器附加到您的TabBar的檢查此標誌。
c)直接從視圖控制器呈現模態登錄頁面。如果他們登錄,很好的解僱它,如果不是,他們被困在模態頁面上。
因此,這裏基本上是如何做到這一點:
解釋的目的,我要打電話給你的第一個視圖控制器 - fviewController - - 第一個標籤您的TabBar控制器上好嗎?
在fviewController.m
-(void)viewDidLoad {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([[defaults objectForKey:@"loggedIn"]boolValue]) {
NSLog(@"user is logged in - do nothing");
}
else {
NSLog(@"User is not logged in");
[self performSegueWithIdentifier:@"LoginPage" sender:self];
}
}
一對夫婦更多的積分 它看起來像你使用故事板和塞格斯。在這種情況下,你會做以下幾點:
- 您的登錄頁面創建一個新的視圖控制器
- 調速拖動你的TabBar
- 一個SEGUE連接到它的第一個視圖控制器識別SEGUE爲「莫代爾」
- 箱
- 爲登錄視圖控制器一個新的視圖控制器類出示您查看和管理您的身份驗證
- 如果用戶登錄,您需要存儲回NSUserDefaults的 注意:如果您有多個用戶或其他方案,則可能需要修改我在當前用戶的示例go track狀態中顯示給您的單個值。 另外:如果您有註銷代碼,則需要正確設置標誌。 另外:如果用戶要頻繁登錄和註銷,那麼使用視圖將會出現而不是視圖加載。
要翻轉狀態:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:[NSNumber numberWithBool:YES] forKey:@"loggedIn"]; //in
[defaults setValue:[NSNumber numberWithBool:NO] forKey:@"loggedIn"]; //out
do this in your login controller
要關閉該模式的看法。從技術上講,你應該使用委託回調做到這一點,但如果你試圖讓事情變得簡單,這應該是確定
[self dismissViewControllerAnimated:YES completion:^{
}];
所以,你的邏輯是這樣的 - 他們沒有登錄?是的,然後設置爲登錄狀態,然後解僱。如果他們不想登錄,不要做任何事情。他們被卡住了。最後,如果你需要設置登錄控制器,你可以使用下面的方法:prepareForSegue ...來在變化發生之前初始化變量。如果你正在做一些教程,你可能已經閱讀過它。
呃......希望有幫助。這是一個非常基本的方法。如果你得到這個工作,你可以繼續添加更多的安全性和功能。
祝你好運。
我需要一些清晰度,你有1個標籤欄與2個圖標和一個公共和另一個非公開這是保護身份驗證,對不對? – 2013-05-03 04:01:44
@KumarKl號碼現在只有一個標籤欄有兩個標籤。登錄屏幕只有一個導航欄來放置登錄按鈕。 – aVC 2013-05-03 04:03:04
K我知道了..等我會放些東西 – 2013-05-03 04:04:33