2017-04-20 16 views
-2

私はログインしようとしていますが、今はテストをしています。ボタンのタイトルが、このエラーが表示されます:タイプ '(Any) - >()'の値に 'SetTitle'というメンバーがありません。それから、コードとスクリーンショットを残します。Swift3: '(Any) - >()'の値にメンバー 'setTitle'がありません

私はブロックされており、続行できないため、私は助けが必要です。すべての助けに感謝します。ありがとうございました。

enter image description here

そして、これはそれが@IBAction @IBOutletされていないので、あなたが_login_buttonに接続されている問題を持っている私のコード

import UIKit 

class LogViewController: UIViewController { 

    @IBOutlet weak var _username: UITextField! 
    @IBOutlet weak var _password: UITextField! 

    @IBAction func _login_button(_ sender: Any) { 
     let username = _username.text 
     let password = _password.text 

     if(username == "" || password == "") 
     { 
      return 
     } 

     DoLogin(username!, password!) 
    } 



    func DoLogin(_ user:String, _ psw:String) 
    { 

     let url = URL(string: "http://localhost/bill/userLogin.php") 
     let session = URLSession.shared 

     let request = NSMutableURLRequest(url: url!) 
     request.httpMethod = "POST" 

     let paramToSend = "username=" + user + "&password=" + psw 
     request.httpBody = paramToSend.data(using: String.Encoding.utf8) 

     let task = session.dataTask(with: request as URLRequest, completionHandler: { 
       (data, response, error) in 
      guard let _:Data = data else 
      { 
       return 
      } 

      let json:Any? 
      do 
      { 
       json = try JSONSerialization.jsonObject(with: data!, options: []) 
      } 
      catch 
      { 
       return 
      } 

      guard let server_response = json as? NSDictionary else 
      { 
      return 
      } 

      if let data_block = server_response["data"] as? NSDictionary 
      { 
       if let session_data = data_block["session"] as? String 
       { 
        let preferences = UserDefaults.standard 
        preferences.set(session_data, forKey: "session") 

        DispatchQueue.main.async { 
         execute:self.LoginDone() 
        } 
       } 
      } 
     }) 
     task.resume() 
    } 

    func LoginDone() 
    { 
     _username.isEnabled = false 
     _password.isEnabled = false 
     _login_button.setTitle("Logout", for: .normal) 
    } 


    override func viewDidLoad() { 
     super.viewDidLoad() 


    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 
+0

_login_buttonはIBAutletではない –

+0

'_login_button'はボタンのアウトレットではなく、同じ名前のコンセントを指定してボタン名や関数を変更すると、 –

+0

を変更しますそれが機能します。ありがとうございました – amr07

答えて

2

です。

この問題を解決するには、ストーリーボードのアウトレットをドラッグし、適切なファイルに接続します。

ボタンのプロパティを設定します。

例。

@IBOutlet weak var _login_button_outlet: UIButton! 

func LoginDone() 
{ 
    _username.isEnabled = false 
    _password.isEnabled = false 
    _login_button_outlet.setTitle("Logout", for: .normal) 
} 
+0

ありがとう、今の仕事 – amr07

+0

@ amr07あなたは常にwelocmeです –

0

こんにちは、あなたは弱いのvar _login_buttonを@IBOutlet作成する必要がタイトル設定にどのないボタンその@IBActionメソッドそう_login_buttonにタイトルを設定しよう:UIButtonを!

関連する問題