2016-03-26 10 views
0

私は全体的な開始/ログイン画面を避け、ユーザーがログインしている場合はアプリケーションの最初のページにまっすぐに進みます。以下のコードを実行すると何も起こりません。私は中断し、現在のユーザーはゼロだと言いましたが、ビューがロードされると、現在のユーザーはゼロではありません。PFUserを使用して初期ビューコントローラを変更するにはどうすればよいですか?

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

    self.storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) 
    var currentUser = PFUser.currentUser() 
    print("user \(currentUser)") 
    if currentUser != nil { 
     if(currentUser?.username?.rangeOfString("@music.co") != nil){ 
      self.storyboard?.instantiateViewControllerWithIdentifier("venuehomescreen") 
     }else{ 
      self.window?.rootViewController = self.storyboard?.instantiateViewControllerWithIdentifier("userhomescreen") 
     } 
    } 
} 

答えて

0

私は通常、ビューコントローラでそのログのviewDidAppearよりも、ビューコントローラでログに自分のアプリケーションで通常のように進む、私は次のようなロジックを追加:

if PFUser.currentUser() != nil{ 
    //perform segue 
    //or present view controller modally 
} 

それが重要ですログアウトなどの場合、ビューコントローラのログにビューアコントローラのログイン情報を表示するだけで、ビューコントローラのログに戻すことができます。

また、移行元のビューコントローラが階層に追加された後でのみ、ビューコントローラの移行を実行する必要があるため、viewDidAppearでセグを実行する必要があります。

+0

これは私が今やっていることですが、ユーザーが常にセグを実行するためにログインボタンをクリックしないようにしたいと思います。読み込み画面の直後ではなく、自動的にホーム画面に移動します。 – user6032625

+0

ですが、アプリケーションの初期ビューコントローラー(ビューコントローラーのログイン)でviewDidAppearにある場合は、ユーザーから何も必要ありません。キャッシュされている場合にアプリをログに記録する –

+0

ええ、それは何が起こっているのですが、ホーム画面に進む前にログインページを垣間見ることができます。 – user6032625

関連する問題