Facebook SDK: в UINavigationController нет участников 'pu sh' - PullRequest
1 голос
/ 20 января 2020

Я использую SDK Facebook, чтобы пользователь мог войти в мое приложение с помощью Facebook. Кнопка входа в систему работает отлично. Это позволяет пользователю входить и выходить, и правильный профиль найден. Однако, когда пользователь входит в систему, мне нужно, чтобы приложение показывало другой контроллер представления. Вот код ниже:

override func viewDidLoad()
    {
        super.viewDidLoad()

        var loginButton = FBLoginButton(permissions: [ .publicProfile ])

        let screenSize:CGRect = UIScreen.main.bounds
        let screenHeight = screenSize.height // real screen height
        //let's suppose we want to have 10 points bottom margin
        let newCenterY = screenHeight - loginButton.frame.height - 20
        let newCenter = CGPoint(x: view.center.x, y: newCenterY)
        loginButton.center = newCenter

        view.addSubview(loginButton)

        if(AccessToken.current != nil) {
            let storyboard = UIStoryboard(name: "Logged In", bundle: nil)
            let vc = storyboard.instantiateViewController(withIdentifier: "Logged In")
            self.navigationController?.push(vc, animated: true) // this is the error line
        }

        // Extend the code sample "1. Add Facebook Login Button Code"
        // In your viewDidLoad method:
        loginButton = FBLoginButton(permissions: [ .publicProfile, .email, .userFriends ])
    }

Это сообщение об ошибке: Значение типа 'UINavigationController' не имеет члена 'pu sh '

Я использую последнюю версию SDK. Так что я не знаю, что не так? Помощь была бы потрясающей! Спасибо

Ответы [ 5 ]

2 голосов
/ 20 января 2020

Вы должны использовать self.navigationController?.pushViewController(VC, animated: true) вместо push

let vc = self.storyboard?.instantiateViewController(withIdentifier: "Logged In") as NextViewController
        self.navigationController?.pushViewController(VC, animated: true)
1 голос
/ 20 января 2020

Попробуйте это.

self.navigationController?.pushViewController(vc, animated: true)
1 голос
/ 20 января 2020

Вместо push() метода вам придется использовать pushViewController() метод

self.navigationController?.pushViewController(vc, animated: true). 

Примечание: -

Имя файла вашей раскадровки не может содержать пробел, пожалуйста, удалите этот пробел. Переименуйте имя файла вашей раскадровки в «LoggedIn» или «Logged_In».

        let storyboard = UIStoryboard(name: "LoggedIn", bundle: nil)
        let vc = storyboard.instantiateViewController(withIdentifier: "Logged In")
        self.navigationController?.push(vc, animated: true) 

Как проверить имя storyBoard и просмотреть идентификатор контроллера?

enter image description here

1 голос
/ 20 января 2020

Вы пытались использовать это? -

self.navigationController?.pushViewController(vc, animated: true)

UPD:

self.present(vc, animated: true, completion: nil)
0 голосов
/ 20 января 2020

Вместо push() напишите ниже строки

self.navigationController?.pushViewController(vc, animated: true)

Для изменения заголовка экрана необходимо установить свойство заголовка второго экрана,

vc.title = "Logged In"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...