あなたのコード例は、Digits ドキュメント ( https://docs.fabric.io/apple/digits/sign-in-with-phone-number.html#alternative-navigation-flows ) の例から引き出されたと思います。私にはすべて正しいように見えます。あなたは正しい道を進んでいると思います。
Digits でできることは、アカウントを作成するか、電話番号でアプリにサインインすることです。
これは、コードを実行するときのナビゲーション コントローラー内の正しいコードです。
func didTapButton(sender: AnyObject) {
let digits = Digits.sharedInstance()
let configuration = DGTAuthenticationConfiguration(accountFields: .DefaultOptionMask)
configuration.phoneNumber = "+345555555555"
digits.authenticateWithNavigationViewController(navigationController, configuration:configuration, completionViewController:completionViewController)
}
これにより、現在のView Controllerの上にモーダルがポップされます。ユーザーはサインアップして確認またはログインし、Digits がこれを認証すると、View Controller がポップされますcompletionViewController
。
質問に関しては、UINavigationBar にボタンを追加し、押されたときに didTapButton 関数を呼び出す UIAction を作成します。これにより、必要な認証がトリガーされます。
NavigationViewController を使用したくない場合は、次を使用します。
func didTapButton(sender: AnyObject) {
let digits = Digits.sharedInstance()
digits.authenticateWithCompletion { (session, error) in
// Inspect session/error objects
}
}
そして、認証が成功したときにView Controllerをポップすることを自分で処理する必要があります。
数字で使用する独自のフォームを作成することはできません。常に上部にポップされるモーダルですが、アプリのようにフォーマットすることができます。
configuration.phoneNumber = "+345555555555"
多分混乱します。これは、数字形式での電話番号のオプションの事前入力です。Digits は +34 をスペイン語として認識し、5555555555 を電話番号として認識します。このコード行を削除したくない場合は、国コードのみを残して電話番号を削除することもできます。数字は国コードのみをフォームに事前入力します。
Digits を取得して、ユーザーのメール アドレスを要求することもできます。これは、に変更let configuration = DGTAuthenticationConfiguration(accountFields: .DefaultOptionMask)
することによって行われますlet configuration = DGTAuthenticationConfiguration(accountFields: .Email)
実装を成功させる方法の完全な例については、このページを参照してください: https://fabric.io/kits/ios/digits/features
これがお役に立てば幸いです。さらに質問があればお気軽にどうぞ :)