NavigationController ជាមួយ Segue Xcode

បន្ទាប់ពីយើងសិក្សា 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
        }
    }
    
}
  


មេរៀនមុន UINavigationController
មេរៀនបន្ទាប NavigationController ជាមួយ Storyboard

Post a Comment

0 Comments