2

我有我的iPhone項目故事板中定義以下工作流程:iPhone iOS用故事板實現登錄/註銷工作流程的正確方法是什麼?

  • 登錄視圖控制器設置爲在故事板根視圖控制器。
  • 登錄有一個單獨的工作流程用於登錄和設置帳戶。
  • 兩個工作流程最終模態呈現選項卡欄與主應用內容
  • 對於後續的應用程序啓動,我編程方式確定正確的控制器中appDidFinishLaunching:
  • 對於隨後的應用程序中使用與主要內容的標籤條來實例是根視圖控制器(以編程方式設置)

現在我想實現一個「註銷」的過程 - 一個按鈕擦除所有用戶數據,並將用戶帶回原始的「登錄/設置帳戶」屏幕。

我遇到了一個問題,由於應用程序的多個狀態,我需要多個路徑才能返回到主屏幕。例如:

我將如何着手實施上述登錄/註銷邏輯?

是否有一個正確的方法來完全摺疊當前正在屏幕上的視圖層次結構並將其替換爲另一個?

我想這一個:

[self.window setRootViewController:tabBarViewController]; 

但我不知道這是否會正常卸載由我取下舊RootViewController的堆棧使用的所有資源。

+1

使用此代碼,我有一個類似的設置,製作稍微複雜通過將標籤欄控制器放在滑出式(漢堡包)菜單上。這個答案爲我創造了奇蹟: https://stackoverflow.com/questions/10273910/resetting-storyboard-on-logout本質上,它是在應用程序啓動並恢復到故事板開始時保持故事板的問題需要。它在你的應用程序中的位置並不重要。 – andyb

回答

-1

使用NSUserDefault存儲登錄值,調用任何的viewController ... 在從Userdefaults signout刪除值前檢查userdefault或signout

NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier]; 
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain]; 
+0

'NSUserDefault'不安全。使用SSKeyChain。 – Dean

相關問題