2014-07-03 548 views
2

我對iOS開發相當陌生,並且正在處理我的第一個應用程序。我的應用程序有3個主要視圖,第一個是登錄屏幕(允許用戶登錄到Web服務),第二個是提交屏幕(允許用戶向Web服務提交內容),最後是設置視圖(除其他外允許用戶註銷應用程序)。覆蓋UINavigationController中的後退按鈕

我將Keychain中的用戶憑證存儲爲最佳做法,以便用戶可以保持登錄狀態,通常當他們打開應用程序時,他們可以直接進入提交內容頁面。因此,提交視圖實質上是我的主要觀點。

要訪問設置,我在提交視圖上有一個小檔位按鈕,將用戶帶到設置頁面。在設置頁面上,我有一個註銷按鈕,可以從鑰匙串中刪除您的用戶名和密碼。

所以,如果你已經註銷了應用程序,我希望後退按鈕帶你到登錄視圖,如果不是它應該帶你回到提交視圖,但我似乎無法控制後退按鈕帶着用戶。

我知道蘋果的指導方針表示不要這樣做,但這似乎是一個明顯的設計選擇。我將如何覆蓋導航欄上的後退按鈕的操作?

回答

0

簡單的隱藏導航欄,並把你的自定義導航欄,寫什麼都命名要按鈕,使用[self.navigationController popViewControllerAnimated: YES];提供後退按鈕操作或選擇的任何視圖控制器你想..

OR

你可以簡單地創建NavigationController的子類和override方法popViewControllerAnimated:

0

您將很容易將用戶信息保存爲用戶默認值而不是鑰匙串。 當用戶登錄添加此

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

當用戶註銷添加此

[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"UserAlreadyRegister"]; 

,並按照視圖代碼沒有出現在您提交鑑於放

-(void)viewDidAppear:(BOOL)animated{ 
    BOOL alreadyRegister = [[NSUserDefaults standardUserDefaults] boolForKey:@"UserAlreadyRegister"]; 
    if (alreadyRegister){ 
     [self.navigationController popViewControllerAnimated:YES]; 
    } 
}