iOS開發-登入介面開發(7)跳轉傳值-Swfit4.1_Xcode9.3.1

來源:互聯網
上載者:User

標籤:技術分享   image   word   str   ack   blog   輸入   分享圖片   tail   

1.登入失敗提示,我們進行Toast提示,告訴使用者VIP號碼輸入不正確;

  登入成功,我們一般跳轉到主介面,跳轉時,把使用者id等資料 傳遞給主視圖控制器,

2.拖拽一個View控制項,來建立一個主視圖,並拖拽一個Text控制項,準備來顯示傳遞過來的值

3.建立一個主視圖控制器:

4.給主視圖設定控制器:

5.實現主視圖的功能:

// 主介面import UIKitclass HomeViewController: UIViewController {    @IBOutlet weak var tv_main: UITextField!        var vip_id_str:String?  // 準備接收傳過來的值       override func viewDidLoad() {        super.viewDidLoad()                tv_main.text = vip_id_str   // 把傳過來的值,設定到視圖    }    override func didReceiveMemoryWarning() {        super.didReceiveMemoryWarning()        // Dispose of any resources that can be recreated.    }}

6.實現登入成功後,跳轉,並傳遞值:

  6.1.關鍵代碼1:

                    // 跳轉頁面 - 從登入介面跳轉到主介面                    //      withIdentifier  跳轉串連                    //      sender          要傳遞的值                    //      這裡,我們傳遞vip_id,一個字串。如果需要,我們也可以傳遞一個對象                    self.performSegue(withIdentifier: "main2home", sender: vip_id)

  6.2.關鍵代碼2:

    // 在這個方法中給新頁面傳遞參數    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {        if segue.identifier == "main2home"{ // 如果 標識符 是 main2home            // 擷取要跳轉的視圖的控制器            let controller = segue.destination as! HomeViewController // HomeViewController 被傳遞的視圖的控制器            // 設定要跳轉的視圖的控制器 哪個變數(vip_id_str) 接收 傳遞過去的值(vip_id)            controller.vip_id_str = sender as? String                 // vip_id_str         被傳遞的視圖的控制器 的 對應變數        }    }

  6.3.完整代碼:

import UIKitimport SwiftyJSONimport Toast_Swift// 登入介面class ViewController: UIViewController {            @IBOutlet weak var et_vip_code: UITextField! // VIP號碼    @IBOutlet weak var bt_login: UIButton! // 登入按鈕    override func viewDidLoad() {        super.viewDidLoad()        // Do any additional setup after loading the view, typically from a nib.    }    override func didReceiveMemoryWarning() {        super.didReceiveMemoryWarning()        // Dispose of any resources that can be recreated.    }        // 登入按鈕 的 點擊事件    @IBAction func bt_login_clicked(_ sender: Any) {        //建立請求參數        // let params = ["VIP_keyworld":"595466","password":"123456"] // 多個參數寫法        // let params = ["VIP_keyworld":"595466"]                let vipCode = et_vip_code.text!        let params = ["VIP_keyworld":vipCode] // 請求參數        let loginUrl = "http://www.xxx.com/xxxx/xxxxx.asp" // 請求地址                // 使用 AFNetworking 發送POST請求        NetworkTools.shareInstance.request(methodType: .POST, urlString: loginUrl, parameters: params as [String : AnyObject]) { (result : AnyObject?, error : Error?) in                        if error != nil  {                print(error!)                return            }            print(result!)                                    // 使用 SwiftyJSON 解析json -- 這裡解析的是 jsonObject            // 如果要解析 jsonArray, SwiftyJSON 更加絲滑, 參考 http://www.hangge.com/blog/cache/detail_968.html            let json = JSON(result as Any)            if let vip_id = json["id"].string {                print("id是:",vip_id)                self.view.makeToast("id = " + vip_id) // Toast 提示                if vip_id == "0" {                    self.view.makeToast("請輸入正確的VIP號碼") // Toast 提示                }else{                    self.view.makeToast("登入成功") // Toast 提示                    // 跳轉頁面 - 從登入介面跳轉到主介面                    //      withIdentifier  跳轉串連                    //      sender          要傳遞的值                    //      這裡,我們傳遞vip_id,一個字串。如果需要,我們也可以傳遞一個對象                    self.performSegue(withIdentifier: "main2home", sender: vip_id)                }            }        }    }        // 在這個方法中給新頁面傳遞參數    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {        if segue.identifier == "main2home"{ // 如果 標識符 是 main2home            // 擷取要跳轉的視圖的控制器            let controller = segue.destination as! HomeViewController // HomeViewController 被傳遞的視圖的控制器            // 設定要跳轉的視圖的控制器 哪個變數(vip_id_str) 接收 傳遞過去的值(vip_id)            controller.vip_id_str = sender as? String                 // vip_id_str         被傳遞的視圖的控制器 的 對應變數        }    }        // 輸入框內容 改變 監聽    @IBAction func et_vip_code_changed(_ sender: Any) {        let vipCode = et_vip_code.text!        if vipCode.count > 0 {            bt_login.backgroundColor = #colorLiteral(red: 0.1921568627, green: 0.5411764706, blue: 1, alpha: 1) // 已經輸入VIP號碼 登入按鈕背景色        } else{            bt_login.backgroundColor = #colorLiteral(red: 0.3137254902, green: 0.3921568627, blue: 0.5137254902, alpha: 1) // 沒有輸入VIP號碼 登入按鈕背景色        }    }    }

7.後面的博文,我們將繼續練習UI實現和網路請求~

iOS開發-登入介面開發(7)跳轉傳值-Swfit4.1_Xcode9.3.1

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.