2015-07-13 5 views
0

im новый для быстрого/xcode. Я пытаюсь настроить логин facebook.Segues in Swift

Вход в систему работает нормально, но при успешном входе в систему segue не работает. Ошибок нет, он просто не переходит к следующему диспетчеру.

Я подозреваю, что проблема лежит здесь как-то:

self.performSegueWithIdentifier("showNew", sender: self) 

какие-либо идеи?

import UIKit 
import FBSDKCoreKit 
import FBSDKLoginKit 

class ViewController: UIViewController, FBSDKLoginButtonDelegate { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     if (FBSDKAccessToken.currentAccessToken()==nil){ 

      println("not Logged in") 
     } 

     else{ 
       println("Logged in!") 

       self.performSegueWithIdentifier("showNew", sender: self) 

     } 

     var loginButton = FBSDKLoginButton() 
     loginButton.readPermissions = ["public_profile","email","user_friends"] 
     loginButton.center = self.view.center 

     loginButton.delegate = self 

     self.view.addSubview(loginButton) 



     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


    func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) { 


     if error == nil { 

      println("Login Complete") 



     } 
     else 
     { 

      println(error.localizedDescription) 
     } 

    } 


    func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) { 

     println("User Logged Out!") 
    } 











} 
+1

Определен ли «showNew» segue? – Shades

+0

@Shades 'performSegueWithIdentifier (_: sender:)' генерирует исключение, если идентификатор не определен. –

+0

в этой строке: 'self.performSegueWithIdentifier (" showNew ", отправитель: self)' напишите следующее имя viewcontroller вместо self, как 'self.performSegueWithIdentifier (" showNew ", отправитель: MyNextViewController.self)' – iRiziya

ответ

1

Ваш забывший объявить идентификатор.

enter image description here

0

Я предполагаю, что вы хотите, чтобы приложение, чтобы перейти к следующему контроллеру просмотра после FB входа. В основном перейдите на успех входа.

Move

self.performSegueWithIdentifier("showNew", sender: self) 

для loginButton делегата.

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) 
{ 
     if (error == nil) 
     { 
      println("Login Complete") 
      self.performSegueWithIdentifier("showNew", sender: self) 
     } 
     else 
     { 
      println(error.localizedDescription) 
     } 
} 

Если ваш segue не был определен правильно, приложение разбилось бы. Поскольку он не сбой в self.performSegueWithIdentifier, вы можете полагать, что он определен.

+0

Предположим, если пользователь уже вошел в систему, а затем кнопка выхода из системы появляется в первом диспетчере представлений. Что делать, если я хочу, чтобы следующий диспетчер представлений был загружен, если пользователь уже зарегистрирован? – rAzOr

Смежные вопросы