2016-03-21 5 views
0

Я реализовал FB логин в мое приложение со следующим в файле вида controller.swiftSegue на новый контроллер представления

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

    if error == nil 
    { 
     print("Login Successful") 
    } 
    else 
    { 
     print(error.localizedDescription) 
    } 

} 

С этого момента, хотя я не знаю, как/где вызываем функцию непосредственно перейти после успешного входа в систему, я новичок в быстром, поэтому любое подробное объяснение будет замечательным.

+0

Самый простой способ, добавить сцену в рассказчике d, назначить идентификатор и вызвать 'performSegueWithIdentifier' – zcui93

ответ

0

ваш код хорошо, в то же время вы должны реализовать performSegueWithIdentifier для Segue

enter image description here

use segue identifier in Push Method and give the proper connection 

если вы используете Identifier, затем вызовите эту строку, где и нужно self.performSegueWithIdentifier ("ИмяИдентификатора", отправитель: самостоятельно)

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

    if error == nil 
    { 
     print("Login Successful") 
     self.performSegueWithIdentifier("identifierName", sender: self) 
    } 
    else 
    { 
     print(error.localizedDescription) 
    } 

} 

Choice-2

if use `storyboard ID` with connection less 

, например

I have given segue identifier in SeconViewController as in the image.

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

    if error == nil 
    { 
     print("Login Successful") 
      let second = self.storyboard?.instantiateViewControllerWithIdentifier("SecondViewControllerSegue") as? SecondViewController 
    self.navigationController?.pushViewController(second!, animated: true) 
    } 
    else 
    { 
     print(error.localizedDescription) 
    } 

} 
+0

ваша проблема решена или нет –

+0

Да после некоторого уговоров я, наконец, получил это спасибо – bananibau5

+0

@ bananibau5 - приветственный чувак –

0

Объявите SEGUE между контроллерами зрения в раскадровке установить идентификатор в атрибуты инспектора, например, «showNexController» и сделать это:

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) { 
    if (error) { 
    print("Process error") 
    } else if (result.isCancelled) { 
    print("Cancelled") 
    } else { 
    print("Logged in") 
    // Perform segue here 
    performSegueWithIdentifier("showNexController", sender: self) 
    } 
} 
+0

, чтобы сохранить его в пределах одной и той же функции? Не создавать новую функцию? – bananibau5

+0

вам нужно вызвать segue при успешном входе в систему, поэтому вам нужно просто вызвать функцию executeSegueWithIdentifier в этом закрытии. Вы можете создать отдельную функцию, которая имеет performSegueWithIdentifier, а также любую другую логику, которую вы хотите добавить, но вам все равно придется звонить он находится в этом закрытии. –

+0

Если вы хотите сделать больше действий в журнале в случае, прежде чем выполнить segue, вы можете объявить свою функцию иначе. – Ro22e0

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