2011-07-13 83 views
0

我正在製作一個基於導航的應用程序,我想從一個讓用戶輸入用戶名/密碼的屏幕開始,然後繼續進行正常的導航層次結構視圖。我正在想着這樣做的最佳方式。我應該爲登錄屏幕創建一個新的viewController並開始使用它,然後使用presentModalViewController轉到導航層次結構的RootViewController?或者最好從RootViewController(一個tableViewController)開始,並立即將登錄視圖推送到屏幕上,然後在它們輸入正確的用戶名/ pw組合時彈出它?我也很好奇你將如何從RootViewController的不同視圖開始你的應用程序,因爲現在它總是第一個顯示出來。謝謝!iPhone開發 - 帶啓動登錄屏幕的基於導航的應用程序?

回答

0

如果用戶暫停/恢復您的應用或鎖定/解鎖手機,您是否要讓他們再次登錄?如果是這樣,那麼我會選擇第二個選項,將NavigationView上方的LoginView。否則,我認爲從LoginView開始,用NavigationView替換它就沒有問題。

0

您的ApplicationDelegate類指定哪個控制器將充當應用程序的根控制器。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    self.window.rootViewController = self.navigationController; 
    ... 
} 

在這個例子中,UINavigationController的的一個實例被設置爲根視圖控制器一旦應用程序已完成啓動(例如所有資源被加載和過渡從啓動圖像。製造)。

如果你想要一個不同的控制器作爲你的應用程序的根,那麼這就是你要做的地方。

要回答有關設計的問題,它取決於所需的工作流程。根據你所描述的內容,我將從一個加載登錄視圖/控制器的準系統視圖控制器開始。在認證用戶後,該視圖控制器可以切換到主應用程序視圖。通過這樣的設計,如果您需要在任何時候重新驗證用戶身份,則可以輕鬆切換回LoginViewController。

ApplicationViewController(根)
- LoginViewController
- MainViewController(這可能是你需要的是一個UINavigationController或其他)

希望幫助!

+0

謝謝!一般來說,我仍然對基於導航的應用程序模板感到困惑。它不提供給你一個UINavigationController嗎?因爲RootViewController是一個UITableViewController,所以我用什麼作爲導航控制器? (我在哪裏實際推送?)我必須製作自己的導航控制器嗎?我應該在哪裏製作它?我很困惑。謝謝你的幫助 – Tim

相關問題