Swift App – iOS Calculator Part-2
In the previous article, I wrote the design of the iOS Calculator. In this article, I will try to write the idea of the how calculator work in the iOS Calculator.
Firstly, I opened the project which we created before. In the project, I go ViewController.swift and then i add the operation buttons, number buttons and the result label from MainStoryboard.
@IBOutlet weak var resultLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func operationButtons(_ sender: Any) {
}
@IBAction func numberButtons(_ sender: Any) {
}
After this process there is nothing to do in the MainStoryboard. In the calculator, I take 2 number from the user so i should have 2 number variable which names are firstNumber and nextNumber and i should know the if the one of the operation button clicked so i add the boolean variable which name is isMath. Also i should keep the value of the which operation clicked so i create a variable which name is operation keeps the tag of the operation buttons.
var firstNumber : Double = 0
var nextNumber : Double = 0
var isMath : Bool = false
var operation : Int = 0
After the making initialization of the variables, I made the controls of the operationButtons function. I controlled the value of the resultLabel and the which operation clicked. By using the if-else method, I made the process of the giving value to the firstNumber and nextNumber.
@IBAction func operationButtons(_ sender: UIButton) {
if resultLabel.text != "" && sender.tag != 11 && sender.tag != 17{
firstNumber = Double(resultLabel.text!)!
if sender.tag == 12 {
//%
resultLabel.text = "%"
}
else if sender.tag == 13 {
// /
resultLabel.text = "/"
}
else if sender.tag == 14 {
// *
resultLabel.text = "X"
}
else if sender.tag == 15 {
// -
resultLabel.text = "-"
}
else if sender.tag == 16 {
// +
resultLabel.text = "+"
}
operation = sender.tag
isMath = true
}
else if sender.tag == 11{
firstNumber = 0
nextNumber = 0
operation = 0
resultLabel.text = ""
}
else if sender.tag == 17{
if operation == 12 {
resultLabel.text = String(firstNumber / 100)
}
else if operation == 13 {
resultLabel.text = String(firstNumber / nextNumber)
}
else if operation == 14 {
resultLabel.text = String(firstNumber * nextNumber)
}
else if operation == 15 {
resultLabel.text = String(firstNumber - nextNumber)
}
else if operation == 16 {
resultLabel.text = String(firstNumber + nextNumber)
}
}
}
After the operation process, i give the value of the firstNumber and nextNumber in the numberButtons function by checking the value of the isMath. Tag of the number buttons is +1 more the label of the button, That’s why i delete -1 from the tag.
@IBAction func numberButtons(_ sender: UIButton) {
if isMath == true {
resultLabel.text = String(sender.tag - 1)
nextNumber = Double(resultLabel.text!)!
isMath = false
}
else{
resultLabel.text = resultLabel.text! + String(sender.tag - 1)
nextNumber = Double(resultLabel.text!)!
}
}
After the all these process, our calculator will work right. You can reach the project by clicking here.

If you have any question you can ask via e-mail or comments.