2016-10-30 32 views
0

我創建了我的應用程序的登錄屏幕,在我的AppDelegate.swift文件中有rootview控制器。但我也創建了一個TabController作爲使用故事板的應用程序的入口點。經過幾次思考,我找到了一個解決方案,並想知道這是否是正確的方法。我希望tabController成爲應用程序的rootview控制器。但是,只有在用戶登錄後才能顯示tabController。如果用戶未登錄,請調用登錄屏幕,該屏幕是允許用戶登錄或註冊應用程序的導航控制器。它從服務器收到一個令牌,然後繼續到tabController。如果用戶有一個令牌,那麼如果不調用登錄屏幕,則默認屏幕是tab控制器。我想知道我的方法是否正確?使用登錄屏幕和TabController的正確技巧

現在在我的Appdelegate.swift文件中,我定義了名爲WelcomeHomeController.swift的登錄屏幕作爲登錄屏幕,但我不希望rootviewcontroller成爲默認屏幕。另外我應該在AppDelegate.swift類中定義rootViewController?

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

     let welcomeHomeController:UIViewController = WelcomeHomeController(nibName: nil, bundle: nil) 
     welcomeHomeController.view.backgroundColor = UIColor.whiteColor() 
     let navController:UINavigationController = UINavigationController(rootViewController: welcomeHomeController) 

     //create window 
     self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 
     self.window?.backgroundColor = UIColor.darkGrayColor() 
     self.window?.rootViewController = navController 
     self.window!.makeKeyAndVisible() 
} 

我想要一些幫助或如何實現這個的例子。

回答

0

我經常這樣做:創建一個RedirectViewController作爲初始視圖控制器,它的UI與Splash Screen完全相同。在這個控制器中,我將調用Api來檢查用戶是否有效,然後決定哪個是下一個根視圖控制器,在你的情況下它將是WelcomeHomeControllerTabViewController

+0

請給出一個示例代碼。這裏的啓動畫面意味着你在登錄後看到的頁面? – user3497437

+0

沒有啓動屏幕= LauchScreen:這是一個加載視圖,用戶在打開應用程序時看到的 – lee5783

+0

好的,請您展示一個示例 – user3497437