0

ユーザーがログイン資格情報を入力してログイン ボタンをクリックした後に、アクティビティ インジケーターを表示したいと考えています。これは簡単に見えましたが、実行するとインジケーターが表示されません (ビルドは成功しました)。これは、アプリが実際に実行されると、検証のために資格情報がサーバーに渡されるが、そのコードはまだアクティブではないため、ログインが瞬時に行われるためか、またはこれを間違って書いたがそうではないためかどうかはわかりませんエラーの原因となります。ご協力ありがとうございました。

 @IBAction func loginButtonTapped(sender: AnyObject) {

    //add error checking for loginEntered and passwordEntered if they are blank
    if loginEntered.text == "" || passwordEntered.text == "" {

        //Define the variable error for the message that should be displayed
        self.alertError = "Please enter your Login ID and/or Password"

    }

    if self.alertError != ""  { //if there is an error with the login

        //Display the error message on screen
        self.displayAlert("Missing Required Information", error: alertError)

        //reset error variable
        self.alertError = ""

        //return the user to the LoginID field and empty it if there is data in it. Empty the password field too.  ?? How do I do that??

    } else { //the login ID and password are entered

        //setup for a spinner to notify the user the app is working on something
        activityIndicator = UIActivityIndicatorView(frame: CGRectMake(0, 0, 80, 80))
        activityIndicator.center = self.view.center;
        activityIndicator.backgroundColor = (UIColor(white: 0.3, alpha: 0.5)) //creates a background behind the spinner
        activityIndicator.layer.cornerRadius = 10
        activityIndicator.hidesWhenStopped = true
        activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge
        view.addSubview(activityIndicator)
        activityIndicator.startAnimating()
        UIApplication.sharedApplication().beginIgnoringInteractionEvents()

このコードは、ログイン資格情報に基づいていくつかの if ステートメントに進み、サーバーからデータを返します。最後に、インタラクション イベントの無視を停止します。最後に、コードをテストするために作成したボタンの IBAction に、この同じコードを挿入します。ボタンに対して機能します。

4

1 に答える 1

0

あなたのコードは問題ありません。つまり、プロセスが永続的ではなくミリ秒かかるため、コードにブレークポイントを配置して、[ビルド] を押したときにコード内のステップへの相互作用を表示できるようにすることをお勧めします。

于 2015-04-20T22:03:52.930 に答える