swift - xcode 和 swift : Navigate to ta bbar controller after facebook login in

标签 swift

首先我要说的是,我对 swift 和 ios 开发非常陌生。就像 1 周新的一样!

我想要实现的是在用户登录后将应用程序导航到选项卡栏 Controller ,就像您第一次登录 Tinder 时发生的情况一样。 到目前为止我所做的是实现 Facebook 登录,它按预期工作。然后我向 Storyboard添加了一个选项卡栏 Controller :

1-我是否需要将带有 facebook 登录信息的 View Controller 连接到标签栏 Controller ?

2-我知道我需要使用“mainStoryboard.instantiateViewControllerWithIdentifier”重定向到另一个 View Controller ( Swift project not segue-ing properly after Facebook login ) 但我不知道如何获取我想要加载的 ViewController 的标识符并传递给这个函数。

请帮忙!这是正确的方法吗?我还需要了解或实现其他事情吗?

感谢您提前抽出时间。

最佳答案

如果您的 Storyboard中有一个 UITabBarController,请将其设为初始 View Controller (您可以在 Storyboard编辑器中进行设置)。您应该能够保持 Facebook 登录 View Controller 不变。您应该采取的下一步是将 Storyboard ID 设置为 Facebook View Controller ;这样您就可以使用instantiateViewControllerWithIdentifier。转到 Storyboard并选择 Facebook View Controller 。导航到身份检查器并将 Storyboard ID 设置为字符串值(可以是任何值,但尽量选择易于识别的内容)。

enter image description here

完成后,转到将是启动时显示的第一个选项卡的类。从这里添加方法override func viewDidAppear(animated: Bool)。您将在其中添加代码以呈现 Facebook View Controller 。这是一个示例类:

class FirstTabViewController: UIViewController {

    var canLogin:Bool = true

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func viewDidAppear(animated: Bool) {

        // Check to see if you need to log in
        if self.canLogin {
            // Get a reference to the storyboard
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            // Instantiate the login view controller
            let loginViewController = storyboard.instantiateViewControllerWithIdentifier("login") as! LoginViewController
            // Present the view controller
            self.presentViewController(loginViewController, animated: true, completion: nil)
            // After presenting the view controller, set a value to prevent it from poping up every time we navigate to this view
            self.canLogin = false
        }

    }

    //...

}

我添加了一个额外的属性var canLogin:Bool = true,这样如果我们不需要它,Facebook View Controller 就不会显示。您需要自己添加自己的实现,以检查是否需要用户登录。

我想指出的最后一件事是完成后如何关闭 Facebook View Controller 。您可以在负责 Facebook View Controller 的类中使用 self.dismissViewControllerAnimated(true,completion: nil) 来实现此目的。当您准备关闭 View 时调用该方法。

关于swift - xcode 和 swift : Navigate to ta bbar controller after facebook login in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38341701/

相关文章:

swift - 是否可以使用 iMessage 应用程序从 iMessage 中获取内容

ios - iOS 中的多重继承和 AppDelegate (swift)

ios - Swift 函数返回得不够快

ios - swift 3 : setting label line height causes infinite loop?

ios - nib/xib 文件是否适用于不同的 View Controller ?

ios - Realm - 过滤大于字符串属性的对象

Swift 将字符串转换为数据缓冲区

swift - 为什么这个带有两个枚举的 Swift switch 语句不详尽?

ios - 字符串中奇怪的不可见字符导致 NSURL 失败

ios - setBackButtonBackgroundImage 不工作