បន្ទាប់ពីយើងសិក្សា NavigationController អំពីទាញ viewControl និងបង្កើត class រួចមក យើងមកសិក្សាអំពីបោះ data វាម្តងដោយយើងបោះតាម segue
Screen ទី១ របស់យើងមាន TextField និង Button។ TextField សម្រាប់ឲ្យ user បញ្ចូលទិន្ន័យ ចំណែកឯ Button គឺសម្រាប់ឲ្យ User ចុចទៅវាទាញទិន្ន័យចេញពី TextField បោះទៅ screen ទី២ ដោយ Button របស់យើងនៅមេរៀនមុនបានដាក់ segue រួចហើយ
នេះគឺជា screen ទី១ ហើយ ViewController របស់វា
នេះគឺជា screen ទី២ ហើយ ViewController របស់វាដោយយើងប្រើតែ Label សម្រាប់បង្ហាញ់ទិន្ន័យពី TextField
នៅ ViewController ដែលមានឈ្មោះ ScreenTwoViewController នៃ screen ទី២របស់យើង យើងសរសេរកូដចំទទួលទិន្ន័យពី screen ទី១ ដែលយើងបង្កើត variable មួយសម្រាបចំទទួល
var text: String?
នៅក្នុង viewDidLoad យើងហៅវាមកប្រើ
if let text = text {
label.text = text
}
import UIKit
class ScreenTwoViewController: UIViewController {
@IBOutlet weak var label: UILabel!
var text: String?
override func viewDidLoad() {
super.viewDidLoad()
if let text = text {
label.text = text
}
}
}
Screen ទី២ របស់យើងត្រូវបានបញ្ចប់ហើយ។
សិក្សា Screen ទី២
យើងមាន method មួយសម្រាប់មើលនៅពេលដែល user ចុចលើ button ។ method នោះគឺ prepare
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
code....
}
segue ដែលនៅក្នុង method ខាងលើ គឺសម្រាប់ឲ្យយើងបោះទិន្ន័យឆ្លងកាត់ ដូច្នេះយើងត្រូវដាក់ឈ្មោះ Identifier ឲ្យវា
បន្ទាបមកសរសេរកូដនៅក្នុង prepare method ហើយសិក្សាវាថា ប្រសិនបើ segue.identifier = ឈ្មោះ Identifier របស់យើងដែលបានដាក់ដូចរូបភាពខាងលើ
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showScreen2"{
}
}
បន្ទាបមកយើងបង្កើត destination ឲ្យវាគឺសម្រាបនៅពេល user ចុចទៅ destination វាទៅ screen ទី២ រួចយើង cast វាទៅ viewController នៃ screen ទី២
let screenTwoVC = segue.destination as! ScreenTwoViewController
យើងបោះទិន្ន័យទៅចូលទៅ screen ទី២បានហើយ។ ដែលហៅ screenTwoVC.text ចំពោះ text គឺជារបស់ screen ទី២ ដែលបានបង្កើត varaible។
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showScreen2"{
let screenTwoVC = segue.destination as! ScreenTwoViewController
// ScreenTwoViewController គឺជាឈ្មោះ ViewController នៃ screen ទី២
screenTwoVC.text = textField.text
}
}
}

0 Comments