2016-06-29 2 views
0

Я добавил, что Google подключился к моему приложению, которое работает, но я не могу показаться, что мое мнение изменилось при успешном значении программным способом.Изменить вид на google sign in ios

Это моя доска для демонстрационных рассказов. Серая коробка, являющаяся кнопкой входа в систему, я добавил кнопку «Переместить страницу вручную» с помощью перехода из экрана входа в экран контроллера панели вкладок. Нажатие на это работает так, как ожидалось, мне нужно, чтобы это произошло автоматически, когда приложение обнаруживает, что пользователь зарегистрирован.

Когда пользователь открывает приложение, первый экран является «экраном входа», если пользователь вошел в систему проверяемый приведенным ниже кодом, я хочу переслать их на главный экран (первая вкладка). Пожалуйста, дайте мне знать, если есть лучший или более быстрый способ сделать это, если это возможно.

Storyboard

Loginscreen:

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Google sign in 
    GIDSignIn.sharedInstance().uiDelegate = self 
    // Check if they're already signed in 
    GIDSignIn.sharedInstance().signInSilently() 

    // check if the user is signed in 
    if (GIDSignIn.sharedInstance().hasAuthInKeychain()){ 
     print("signed in") 
     // Forward the user here straight away... 
    } else { 
     print ("not signed in") 
     // Need to handle the forwarding once they sign in. 
    } 
} 

ответ

1

Вы можете добавить Segue с экрана входа в зависимости от того, ViewController вы хотите и писать код так:

if (GIDSignIn.sharedInstance().hasAuthInKeychain()){ 
     print("signed in") 
    performSegueWithIdentifier("your_segue_name", sender: self) 
     // Forward the user here straight away... 
    } 

Или вы можете представить ViewController способом:

if (GIDSignIn.sharedInstance().hasAuthInKeychain()){ 
let storyboard = UIStoryboard(name: "Yourstoryboardname(Example: Main)", bundle: nil) 
let vc = storyboard.instantiateViewControllerWithIdentifier("yourviewcontrollertobepresented") as! UIViewController 
self.presentViewController(vc, animated: true, completion: nil) 
} 

Необходимо указать ИМЯ ваш контроллер просмотра, который вы хотите присутствовать. Для этого вы нажимаете на свой ViewController в раскадровке, а в Identity inspector вы найдете Storyboard ID. Назовите его так, как вы хотите, и введите то же имя в instantiateViewControllerWithIdentifier("yourviewcontrollertobepresented")

+0

Большое спасибо, второй вариант сработал! Хотя я должен был поместить его в прослушиватель уведомлений, так как каждый раз, когда Google пытается выполнить вход, он занимает секунду или два, из-за чего страница переключается до того, как была отправлена ​​электронная почта пользователя, вызвавшая сбои. Я не уверен, что рекомендуемый способ ускорить вход в Google - это, возможно, кэшировать данные после входа пользователя в систему. – burg93

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