如何将数据从视图控制器传递到其他视图控制器 [英] How to pass data from view controller to other view controller
本文介绍了如何将数据从视图控制器传递到其他视图控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是新手,使用快速语言,我想使用数组将价格从项目视图控制器传递给其他控制器(付款视图控制器)。谁能帮我?谢谢
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屋!
查看全文