2012-10-16 35 views
0

我已經開發出與登錄到帳戶,人們還可以得到我的應用程序註冊相關的應用程序,因爲這些用戶信息將被存儲在一個SQLite數據庫如何禁用iphone重新登錄

的問題在於,當用戶註銷賬戶的,然後重新日誌,應用程序要求用戶重新登錄。我不希望發生這種情況,因爲它應該記住用戶名和密碼,並且應該自動登錄

有誰知道如何做到這一點?

回答

5

在你AppDelegate.m文件,添加NSUserDefaults方法...

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; 

    if ([standardUserDefaults valueForKey:@"dbID"]==nil) {   
     [standardUserDefaults setObject:@"1" forKey:@"dbID"]; 
     [standardUserDefaults synchronize]; 
    } 

} 

並且您還有理智的用戶名和密碼保存NSUserDefaults。 和註銷功能,請將您要註銷該應用程序的代碼註銷代碼...

-(IBAction)Logout :(id)sender { 

    [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"dbID"]; 
    [NSUserDefaults resetStandardUserDefaults]; 
} 

在登錄時檢查dbID爲null,則使用的用戶名和密碼,用戶登錄。如果dbID不是null,則登錄舊的用戶名和密碼。

如果妳退出而不退出應用程序,然後存儲dbid是「1」,在和NSUserDefaults的重定向視圖控制器和保存在您登錄時的用戶名和密碼......爲節省

[[NSUserDefaults standardUserDefaults] setValue:@"Your text field value" forKey:@"Username"]; 
[[NSUserDefaults standardUserDefaults] setValue:@"Your text field value" forKey:@"password"]; 

閱讀

NSString * _UserName = [[NSUserDefaults standardUserDefaults] stringForKey:@"Username"]; 
NSString * _password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password"]; 

用戶名和密碼保存在NSUserDefaults的指示的u必須在存儲NSUserDefaults的用戶名和密碼。

如果你已經註銷通過按鈕的應用,使空的用戶名和密碼保存.. NSUserDefaults的像

[[NSUserDefaults standardUserDefaults] setValue:@"" forKey:@"Username"]; 
    [[NSUserDefaults standardUserDefaults] setValue:@"" forKey:@"password"]; 
+0

我已經完成了與你指示的完全相同的操作,但是當我嘗試使用用戶名和密碼登錄時,請關閉應用程序並返回到登錄頁面,但未自動登錄。還有其他解決方案嗎?你是什​​麼意思「保存用戶名,密碼和NSUserDefaults」我該怎麼做? –

+0

@AjitKumar如果你退出沒有註銷的應用程序,那麼在NSUserDefaults中存儲dbID爲「1」,並重定向視圖controller.username和密碼保存NSUserDefaults指示你有存儲用戶名和密碼在NSUserDefaults .See編輯答案.. –

+0

所以,我要求我在appdelegate.m中設置對象和同步代碼後存儲用戶名和密碼(設置值)? –

1

使用NSUserDefaults。這一次將罰款

NSUserDefaults *rememberDefault = [NSUserDefaults standardUserDefaults]; 
if ([[rememberDefault valueForKey:@"Autologin"] isEqualToString:@"Autologin_on"]) { 
    btnAutoLogin.selected =NO; 
}else {   
    btnAutoLogin.selected =YES; 
} 

在您的按鈕操作方法:

-(IBAction)btnOnOffSwitch:(UIButton *)sender{ 

    if (sender.selected) { 
     sender.selected = NO; 
    }else {   
     sender.selected = YES; 
    }  
} 

,當你要檢查使用此:

NSUserDefaults *rememberDefault = [NSUserDefaults standardUserDefaults]; 

if([[rememberDefault valueForKey:@"Autologin"] isEqualToString:@"Autologin_on"]) 

{ 

    write your code here. to push directly to your home screen. this should be checked in your login screen 

} 
+0

如果我在viewDidLoad部分編寫與NSUser默認相關的第一組代碼,並且如果我在按鈕操作方法中編寫下一組代碼,它會工作嗎?那麼如何檢查,正如你在下面的代碼中提到的那樣? –

+0

@Ajit Kumar:你需要在登錄屏幕上檢查用戶是否已經登錄或不是儀式?它只是用於自動登錄。使用相同的,你想要的。它會正常工作。 –

0

可B本會幫助你。

當你第一次成功登錄的時候,你的條件使1個字典存儲用戶名,密碼和用戶ID,否則爲這3種類型製作3個不同的nsuserdefault對象。

當用戶再次進入該登錄屏幕時,請檢查nsuser默認值是否爲空或具有某個值,因此如果該值已超過已登錄,並且您可以直接將其重定向到下一頁。否則顯示登錄頁..

這裏我只寫邏輯沒有源代碼,這樣你們可以試一下你的自我和了解更多:) ..

希望這會幫助你。