[英]Send a string from a viewController to another one
請在將這個問題標記為重復之前,我想知道為什么我的代碼失敗,而不是發送給另一個正在運行的代碼。
我是Swift的新手,當我單擊同一按鈕時,我想從viewController發送一個變量“ um_words”(當單擊按鈕時計算),將該變量保存在secondViewController中並在textView中顯示。 為此,我嘗試對此代碼進行許多修改,這在控制台中沒有給出任何錯誤,但沒有在textView上顯示變量的值:
第一風投
import UIKit
import Foundation
class TransViewController: UIViewController {
@IBOutlet var trad_text: UITextView!
@IBOutlet var buttonTrad: UIButton!
@IBOutlet var labelsitoh: UILabel!
var num_words = 0
@IBAction func butCalc(_ sender: UIButton) {
let text = trad_text.text
num_words = (text?.components(separatedBy: " ").count)!-1
func prepare(for segue: UIStoryboardSegue, sender: Any?) {
var DestViewController : PaymentViewController = segue.destination as! PaymentViewController
DestViewController.num_words = String(num_words)
}
}
override func viewDidLoad() {
super.viewDidLoad()
trad_text!.layer.borderWidth = 1
trad_text!.layer.cornerRadius = 20
trad_text!.layer.borderColor = UIColor(red:0.22, green:0.26, blue:0.39, alpha:1.0).cgColor
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
第二次風投
import UIKit
import Foundation
class PaymentViewController: UIViewController {
@IBOutlet var labelImport: UITextView!
var num_words = String()
override func viewDidLoad() {
super.viewDidLoad()
labelImport.text = num_words
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
我有一個關於為什么它不起作用的假說:函數“ prepare”沒有被調用; 僅在單擊按鈕時才轉到下一個VC ...
感謝您的時間。
看到:
IBAction func butCalc(_ sender: UIButton) {
let text = trad_text.text
num_words = (text?.components(separatedBy: " ").count)!-1
self.performSegue(withIdentifier: "yourSegueIdentifier", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "yourSegueIdentifier") {
var destViewController : PaymentViewController = segue.destination as! PaymentViewController
destViewController.num_words = String(num_words)
}
}
您已經在另一個功能中創建了一個功能...請嘗試此操作。
PS:我沒有測試此代碼
func prepare應該在按鈕操作之外,觸發segue時將調用它。
@IBAction func butCalc(_ sender: UIButton) {
let text = trad_text.text
num_words = (text?.components(separatedBy: " ").count)!-1
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
var DestViewController : PaymentViewController = segue.destination as! PaymentViewController
DestViewController.num_words = String(num_words)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.