In this example I am going to show you how to pass data between two UIViewControls
First I am going to create single view control
File > New > Projects..
Then you select Single View Application and you can name the project as PassDataViewControl
You can see only one ViewController in your application now. Now you add another ViewController from the Object library in to your story board
Now you need to name your second ViewController. First select the left round button in your second view controller and then click on the Identity inspector panel on the right side of your XCODE editor. Then you can put “SecondViewController” for Class and Story Board id fields as shown in the following
Now I am going to create .swift file for the SecondViewController.
Go to File > New > File… and select the Swift File to create the file. You can name the file as SecondViewController
You add the following basic code for this file
import UIKit class SecondViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
Then you place UIText and UILable control in your first ViewController.
You can place UILabel control in your second view control
Once you place the controls into your ViewControllers you can add Navigation control to your ViewController. You select the first ViewController in your story board and then click Editor > Embed In > Navigation Controller
Then you create IBOutlet from UITextField in your ViewController.swift file
@IBOutlet weak var textData: UITextField!
Now connect UIButton as action to ViewController.swift file. So your action name is “show” and inside the show method you can put the following code
@IBAction func show(_ sender: Any) { let myVC = storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController navigationController?.pushViewController(myVC, animated: true) }
Here what you are going to do is create an instance from the SecondViewController
and show it
Now lets see how to pass data from the First ViewControl to SecondViewControl
I will put UILabel
control on the SecondViewController and make a Outlet named labelData
from it
Next I am going to create variable strDataReceived
to receive data and then you can assign value of strDataReceived
to labelData.text
inside your viewDidLoad()
function
var strDataReceived = "" override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. labelData.text = strDataReceived }
Finally you have to add code to show method in your ViewController.swift file
@IBAction func show(_ sender: Any) { let myVC = storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController myVC.strDataReceived = textData.text! navigationController?.pushViewController(myVC, animated: true) }