Соединение с кнопкой IBOutlet и ее код отключается вскоре после сборки приложения (Swift) - PullRequest
0 голосов
/ 08 мая 2018

Я использую Firebase в своем приложении Swift, чтобы позволить пользователям входить в систему через свою почту Gmail. Таким образом, согласно его документации, я импортировал все необходимые библиотеки, включая «GIDSignInUIDelegate». Затем я добавил кнопку. Затем попытался разделить его на подклассы как «GIDSignInButton» в раскадровке, но он не добавлялся, и даже когда я ввожу имя подкласса как «GIDSignInButton», это не удалось. Затем я попытался добавить строку ниже в контроллере представления "@IBOutlet слабая переменная signInButton: GIDSignInButton!" и попытался подключить кнопку к этой розетке. Но он подключается, и вскоре после того, как я создаю приложение, соединение снова отключается.

Так может кто-нибудь помочь мне выяснить, в чем здесь проблема.

1 Ответ

0 голосов
/ 08 мая 2018

Я не совсем понял вашу проблему, но постараюсь разобрать ее для вас, поэтому вот два шага, которые вы можете попробовать:

  1. Проверьте, действительно ли вы импортировали все необходимые библиотеки = pod ‘GoogleSignIn’, снова запустите установку pod и снова откройте файл с расширением .xcworkspace. И после этого вы можете попробовать добавить кнопку и иметь тип GIDSignInButton
  2. Если первый шаг не работает, попробуйте создать его программно, вот пример кода:

    private var btnSignIn : UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
        let btnSize: CGFloat = 100
        btnSignIn = UIButton(frame: CGRect(x: 0, y: 0, width: btnSize, height: btnSize))
        btnSignIn.center = view.center
        btnSignIn.setImage(UIImage(named: "google_logo.png"), for: .normal)
        btnSignIn.addTarget(self, action: #selector(btnSignInPressed), for: .touchUpInside)
    
        //Circular button
        btnSignIn.layer.cornerRadius = btnSize/2
        btnSignIn.layer.masksToBounds = true
        btnSignIn.layer.borderColor = UIColor.black.cgColor
        btnSignIn.layer.borderWidth = 2
        view.addSubview(btnSignIn)
    }
    
    @objc private func btnSignInPressed() {
        GIDSignIn.sharedInstance().signIn()
    }
    

P.S. иногда, если вы видите в xcode, когда вы создаете проект или снова открываете проект, что IBOutlet или IBAction больше не обведены (не подключены), просто удерживайте и нажмите раскадровку, и вы увидите, если соединения все еще включены или нет. Надеюсь, это поможет!

...