2016-10-31 5 views
0

こんにちは私はユーザーがサインインしたとき、またはアプリケーションでサインアップしたいときにNavコントローラにログイン画面と登録画面を持っています。また、ホームページ画面を表示するタブコントローラーも作成しました。ユーザーがサインインまたはサインアップした後、私はタブコントローラーにセグをしてこれをルートビューコントローラーにしたいので、ユーザーはサインインまたは登録ページに戻ることはできません。これはどのように達成できますか?navコントローラからタブコントローラへの接続とルートビューコントローラの作成方法

以下

は、ログインページやショーのホームページを呼び出していない場合、私はトークンがあるかどうかを確認し、ファイル内のコードの数行私AppDelegate.swiftで

if statusCode == 200 { 
       do { 
        let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) 
        let result = json as? [String: AnyObject] 
        guard let token = result!["token"], let firstname = result!["user"]!["firstname"]! else { 
         print("Error: \(error?.debugDescription)") 
         return 
        } 

        NSUserDefaults.standardUserDefaults().setObject(token, forKey: "token") 
       //code to segue to the tab controller from the nav controller (login screen) 
       self.getHome() 

       } 
       catch { 
        print("Error receiving data") 
       } 
      } 
     }) 
     task.resume() 



    func getHome() { 
    let storyboard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
     let tableController = storyboard.instantiateViewControllerWithIdentifier("tabController") as? UITableViewController 

     let appledDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
     appledDelegate.window?.rootViewController = tableController 
} 

ユーザーがサインです:

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

    let obj = NSUserDefaults.standardUserDefaults().objectForKey("token") 

    if obj == nil { 

    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() 

    return true 

    } 
+0

この投稿はお役に立ちましたか? http://stackoverflow.com/questions/39159444/how-to-get-navigation-based-template-functionality-in-swift-programming/39159793#39159793 –

答えて

0
func getHome() { 
let storyboard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
    let navController = storyboard.instantiateViewControllerWithIdentifier("tabController") as? UINavigationController //be sure to set the "tabController" in the navigationController and not in the tabcontroller 

    let next = navController.topViewController as! YourTabRootViewController 
    self.navigationController.presentViewController(next, animated: true, completion: nil) 

} 
+0

私の答えがあなたを助けたかどうか疑問に思っていましたか? –

関連する問題