成功验证后如何以编程方式进行segue?

时间:2016-07-20 21:13:37

标签: ios swift twitter-digits

我正在使用数字框架制作应用,用户可以使用自己的电话号码登录。话虽如此,我试图通过创建嵌入UINavigationController(到ViewController )来找到一种方法来转换 用户身份验证后的 em>)在我的故事板中添加了一个按钮,该按钮会分成我的下一个查看。我意识到这不是成功验证后的方法。请查看我的代码并告诉我您的想法/建议:

func didTapButton(sender: AnyObject) {
    let digits = Digits.sharedInstance()
    let configuration = DGTAuthenticationConfiguration(accountFields: .DefaultOptionMask)
    configuration.phoneNumber = "+345555555555"
    digits.authenticateWithNavigationViewController(navigationController, configuration: configuration, 
            completionViewController:  completionViewController) 
}

2 个答案:

答案 0 :(得分:1)

现在我更了解这个问题,请试试这个:

import UIKit
import DigitsKit
class LoginViewController: UIViewController {

override func viewDidLoad() {
        let digitsButton = DGTAuthenticateButton(authenticationCompletion: { (session, error) in
             if (session != nil) {
                print("Your Digits User ID is " + session.userID)
                 let map = MapVC()
                self.presentViewController(map, animated: true, completion: nil)
             }
             else {
                print(error.localizedDescription)
            }
        })
        self.view.addSubview(digitsButton)
    }
}

或者可以使用:

import UIKit
import DigitsKit
class LoginViewController: UIViewController {

override func viewDidLoad() {
    let digitsButton = DGTAuthenticateButton(authenticationCompletion: { (session, error) in
        if (session != nil) {
            print("Your Digits User ID is " + session.userID)
            self.performSegueWithIdentifier("mapVC", sender: self)
        }
        else {
            print(error.localizedDescription)
        }
    })
    self.view.addSubview(digitsButton)
}
}

我希望这有效:)

答案 1 :(得分:0)

我认为您的代码示例已从Digits文档(https://docs.fabric.io/apple/digits/sign-in-with-phone-number.html#alternative-navigation-flows)中的示例中提取。这一切对我来说都是正确的,我认为你走在正确的轨道上。

您可以使用电话号码创建帐户或使用电话号码登录应用。

当您运行代码时,这是导航控制器中正确的代码:

func didTapButton(sender: AnyObject) {
let digits = Digits.sharedInstance()
let configuration = DGTAuthenticationConfiguration(accountFields: .DefaultOptionMask)
configuration.phoneNumber = "+345555555555"
digits.authenticateWithNavigationViewController(navigationController, configuration:configuration, completionViewController:completionViewController)
}

这将在当前视图控制器的顶部弹出一个模态。用户将注册并验证或登录,当Digits对此进行身份验证后,它将弹出您的视图控制器completionViewController

关于这个问题,在UINavigationBar中添加一个按钮并创建一个UIAction来在按下它时调用didTapButton函数。然后,这将触发您希望的身份验证。

如果您不想使用NavigationViewController,请使用:

func didTapButton(sender: AnyObject) {
    let digits = Digits.sharedInstance()
    digits.authenticateWithCompletion { (session, error) in
        // Inspect session/error objects
    }
}

然后你必须自己处理成功身份验证时弹出视图控制器。

你不能创建自己的表格来使用数字,它总是一个弹出顶部的模态,但你可以将它格式化为你的应用程序。

configuration.phoneNumber = "+345555555555"可能令人困惑。这只是数字形式的电话号码的可选预填。数字将识别+34为西班牙语,5555555555为电话号码。如果您不希望删除代码行,或者您可以删除电话号码,只留下国家/地区代码,数字只会在表单中预填国家/地区代码。

您还可以获取Digits来请求用户的电子邮件地址。这是通过将let configuration = DGTAuthenticationConfiguration(accountFields: .DefaultOptionMask)更改为let configuration = DGTAuthenticationConfiguration(accountFields: .Email)

来完成的

有关如何成功实施的完整示例,请参阅此页:https://fabric.io/kits/ios/digits/features

我希望这有帮助,随时可以提出任何进一步的问题:)