首先我要说的是,我对 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 设置为字符串值(可以是任何值,但尽量选择易于识别的内容)。
完成后,转到将是启动时显示的第一个选项卡的类。从这里添加方法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/