如何将数据从视图控制器传递到其他视图控制器 [英] How to pass data from view controller to other view controller

查看:138
本文介绍了如何将数据从视图控制器传递到其他视图控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新手,使用快速语言,我想使用数组将价格从项目视图控制器传递给其他控制器(付款视图控制器)。谁能帮我?谢谢

i’m newbie in swift language and i want to pass the price from the Item view controller to other controller (Payment view controller) using array. Can anyone help me? Thank you

这里是项目详细信息视图控制器的代码

Here the code for the item detail view controller

import UIKit


class ItemDetailViewController: UIViewController {

     var items = [item]()

    var name : String = ""
    var price : String = ""
    var imagee : String = ""

    @IBOutlet weak var labelname: UILabel!

    @IBOutlet weak var image: UIImageView!

    @IBOutlet weak var labelprice: UILabel!

// This one got error. 

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destination.
        var DestViewController : PaymentViewController = segue.destination as! PaymentViewController

        DestViewController.price = labelprice?[IndexPath.text]

    }

    @IBAction func addtoPayment(_ sender: Any) {



        }



    override func viewDidLoad() {
        super.viewDidLoad()

        labelname.text = name
        labelprice.text = price
        image.image = UIImage(named: imagee)

    }


}

此处为付款代码

import UIKit

class PaymentViewController: UIViewController {

     var items = [item]()
    var price : String = ""

    @IBOutlet weak var paymentdetails: UILabel!


    @IBOutlet weak var cardnametextfield: UITextField!


    @IBOutlet weak var validthrutextfield: UITextField!


    @IBOutlet weak var cardnumbertextfield: UITextField!

    @IBOutlet weak var cvcnumbertextfield: UITextField!

    @IBOutlet weak var labelprice: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
    labelprice.text = price


        // Do any additional setup after loading the view.
    }


    @IBAction func paybutton(_ sender: Any) {

        if cardnametextfield.text == "" {
            alertMessage(titleInput: "Error, Payment Unsuccessful!", messageInput: "Please Fill all the fields")
        } else if validthrutextfield.text == "" {
            alertMessage(titleInput: "Error, Payment Unsuccessful!", messageInput: "Please Fill all the fields")
        } else if cardnumbertextfield.text == "" {
            alertMessage(titleInput: "Error, Payment Unsuccessful!", messageInput: "Please Fill all the fields")
        } else if cardnumbertextfield.text == "" {
        alertMessage(titleInput: "Error, Payment Unsuccessful!", messageInput: "Please Fill all the fields")
        } else {
            alertMessage(titleInput: "Success!", messageInput: "Payment Successful!")

            self.transitionToHomePage()
        }
    }

    func alertMessage(titleInput: String, messageInput: String){
        let alert = UIAlertController(title: titleInput, message: messageInput, preferredStyle: UIAlertController.Style.alert)
        let paybutton = UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil)

        alert.addAction(paybutton)
        self.present(alert, animated: true, completion: nil)
    }

    func transitionToHomePage(){
         let TabHomeViewController = storyboard?.instantiateViewController(identifier: Constrants.Storyboard.TabHomeViewController) as? UITabBarController

        view.window?.rootViewController = TabHomeViewController
        view.window?.makeKeyAndVisible()
    }

}


推荐答案

您可以使用此代码...尝试对对象使用小写字母

you can use this code ... try to use first letter small for objects

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destination.
        var destViewController : PaymentViewController = segue.destination as! PaymentViewController

        if let lText = labelprice?.text {
          destViewController.price = lText
     }

    }

这篇关于如何将数据从视图控制器传递到其他视图控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆