swift - 身份验证按钮在 Fabric Digits Integration 中不可见

标签 swift twitter-fabric swift2 fabric-digits

嗨,我是 swift 新手,目前我正在开发一个项目,该项目之前在 swift 2.3 中为 iPad 和 iPhone 完成过。我的要求是使用结构数字框架来使用手机号码进行注册。我按照文档中的方式进行了所有操作,但由于某种原因,粉红色的“使用电话号码登录”按钮没有出现在我的屏幕(UIViewController)中。代码如下。

import Alamofire
import SwiftyJSON
import DigitsKit


class ViewController: UIViewController, UITextFieldDelegate {

    var  phoneNum : String?
    let movement: CGFloat = 20.0
    var phoneHeight: CGFloat = 0.0
    var appURLs = AppURLs.sharedInstance
    var loadingView: UIView!
    var Id: Int!
    @IBOutlet weak var username: UITextField!
    @IBOutlet weak var activity: UIActivityIndicatorView!
    @IBOutlet weak var password: UITextField!
    @IBAction func signUpButton(sender: AnyObject) {
        let storyboard = switchStoryboards()
        let vc = storyboard.instantiateViewControllerWithIdentifier("SignUpViewController")
        self.presentViewController(vc, animated: false, completion: nil)
    }

 override func viewDidLoad() {
        super.viewDidLoad()


        configureLoadingView()
        phoneHeight = self.view.frame.height
        UIApplication.sharedApplication().statusBarHidden = true
        self.username.delegate = self
        self.password.delegate = self
        self.slideMenuController()?.removeLeftGestures()
        let usernameImageView = UIImageView()
        if isIphone() {
            usernameImageView.frame = CGRect(x: 0, y: 0, width: 36, height: 20)
        } else {
            usernameImageView.frame = CGRect(x: 0, y: 0, width: 54, height: 30)
        }
        usernameImageView.image = UIImage(named: "Username")
        view.addSubview(usernameImageView)
        username.leftView = usernameImageView
        username.leftViewMode = UITextFieldViewMode.Always

        let passwordImageView = UIImageView()
        if isIphone() {
            passwordImageView.frame = CGRect(x: 0, y: 0, width: 36, height: 20)
        } else {
            passwordImageView.frame = CGRect(x: 0, y: 0, width: 54, height: 30)
        }
        passwordImageView.image = UIImage(named: "Password")
        view.addSubview(passwordImageView)
        password.leftView = passwordImageView
        password.leftViewMode = UITextFieldViewMode.Always

        print("Login view did load loaded")

        let authButton = DGTAuthenticateButton(authenticationCompletion: { (session, error) in
            if (session != nil) {
                // TODO: associate the session userID with your user model
                let message = "Phone number: \(session!.phoneNumber)"
                let alertController = UIAlertController(title: "You are logged in!", message: message, preferredStyle: .Alert)
                alertController.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: .None))
                self.presentViewController(alertController, animated: true, completion: .None)
            } else {
                NSLog("Authentication error: %@", error!.localizedDescription)
            }
        })
        authButton?.center = self.view.center
        self.view.addSubview(authButton!)


    }

    override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
        return UIInterfaceOrientationMask.Portrait
    }

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(true)
    }

    func configureLoadingView() {
        loadingView = UIView(frame: CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height))
    }


    func loginAlerts(messages: String) {
        self.activity.stopAnimating()
        SwiftSpinner.show("Sign in Failed!", animated: false).addTapHandler({
            SwiftSpinner.hide()
            }, subtitle: messages)
    }
    func switchStoryboards() -> UIStoryboard {
        switch UIDevice.currentDevice().userInterfaceIdiom {
        case .Phone:
            // It's an iPhone
            return UIStoryboard(name: "Main", bundle: nil)
        case .Pad:
            return UIStoryboard(name: "StoryboardiPad", bundle: nil)
            // It's an iPad
        case .Unspecified:
            return UIStoryboard(name: "Main", bundle: nil)
            // Uh, oh! What could it be?
        default:
            return UIStoryboard(name: "Main", bundle: nil)
        }
    }

    func isIphone() -> Bool {
        switch UIDevice.currentDevice().userInterfaceIdiom {
        case .Phone:
            // It's an iPhone
            return true
        case .Pad:
            return false
            // It's an iPad
        case .Unspecified:
            return true
            // Uh, oh! What could it be?
        default:
            return true
        }
    }
}

最佳答案

好吧,在这种情况下,您所要做的就是在相关 UI 中创建一个自定义按钮,然后一切都会正常工作

关于swift - 身份验证按钮在 Fabric Digits Integration 中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40992195/

相关文章:

android - 如何通过twitter的Fabric API获取用户数据(Android)

Swift - SKAction moveByX,如何让我的节点从上/下移动

ios - 确认 UITextField 值的值是枚举的成员

ios - 支持 Watch 的 iOS 应用程序的 Crashlytics/Fabric 分布?

ios - Fabric/Crashlytics 不会在 iPhone 5c 上安装应用程序,表示需要 armv7s 构建,但这是在体系结构中设置的

ios - 如何自动缩放 WKWebView 的内容?

ios - 无法使用类型的参数列表调用 animateWithDuration

ios - Swift WebView 不加载 url html5 游戏内容

ios - 调用中的额外参数 'username' - WatsonCloud SpeechToTextV1

swift - 收到推送通知时加载 ViewController