我是新手編程人員,我有一個應用程序,它具有啓動時的登錄視圖並請求用戶輸入他們的名字,這個名字在程序中使用。一旦他們輸入他們的名字並登錄,他們就會看到主菜單視圖。他們的名字使用NSUserdefaults保存。IF statment not checking condition on first run
的想法是,他們將只需要登錄一次(或再次,如果他們退出),因此他們應該只看到登錄查看它們運行然而,一旦應用程序被再次啓動的應用程序在第一時間它仍然顯示登錄屏幕並且在進入主菜單之前還必須按兩下登錄按鈕。
我知道該應用程序正在存儲的細節,因爲它被認爲是應用程序,但我無法找出原因。這是我的代碼。如果有人可以幫助它將不勝感激。
-(IBAction)LogInButton:(id)sender
{
NSString *tempStr = [[NSUserDefaults standardUserDefaults] objectForKey:@"UserName"];
if(tempStr.length==0)
{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:Name.text forKey:@"UserName"];
[prefs synchronize];
LogInView *Logview = [[LogInView alloc] initWithNibName:@"LogInView" bundle:nil];
[self presentModalViewController:Logview animated:YES];
}
else
{
MainMenuView *mainview = [[MainMenuView alloc] initWithNibName:@"MainMenuView" bundle:nil];
[self presentModalViewController:mainview animated:YES];
}
}
感謝您的回覆,但抱歉,我不明白您需要什麼。你需要看到什麼代碼部分,即appdelegate.m等@史蒂夫 – Wayne
是的,我不知道你的文件名是什麼,但無論代碼最初決定「我顯示登錄屏幕,還是跳過它並顯示主菜單「? – Steve
我想也許這個代碼:} - (void)LogInSuccess { \t [self.navigationController popViewControllerAnimated:YES]; MainMenuView * mainview = [[MainMenuView alloc] initWithNibName:@「MainMenuView」bundle:nil];}} \t [self.navigationController pushViewController:(UIViewController *)mainview animated:YES]; \t \t [window addSubview:navigationController.view]; \t [window makeKeyAndVisible]; } – Wayne