From 00fbebcc1e2282d7c10a9a3404e440dcb1563eb3 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Tue, 21 Jul 2015 21:12:51 -0700 Subject: [PATCH] UI that works! It encodes strings! --- Enigma/Base.lproj/Main.storyboard | 31 ++++++++++++++++++++++++++++-- Enigma/MachineViewController.swift | 18 ++++++++++++++++- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/Enigma/Base.lproj/Main.storyboard b/Enigma/Base.lproj/Main.storyboard index 4d11b9c..87aef93 100644 --- a/Enigma/Base.lproj/Main.storyboard +++ b/Enigma/Base.lproj/Main.storyboard @@ -42,22 +42,46 @@ + + + + + + + - + + + @@ -70,6 +94,9 @@ + + + diff --git a/Enigma/MachineViewController.swift b/Enigma/MachineViewController.swift index 3e32e77..3550b55 100644 --- a/Enigma/MachineViewController.swift +++ b/Enigma/MachineViewController.swift @@ -11,6 +11,13 @@ import UIKit class MachineViewController: UIViewController, UITextFieldDelegate { @IBOutlet weak var inputTextField: UITextField! @IBOutlet weak var outputTextField: UITextField! + @IBOutlet var rotorPositionLabels: [UILabel]! + + var machine: Machine! = nil { + didSet { + updateRotorLabels() + } + } override func viewDidLoad() { super.viewDidLoad() @@ -36,9 +43,11 @@ class MachineViewController: UIViewController, UITextFieldDelegate { func textFieldShouldReturn(textField: UITextField) -> Bool { if textField === inputTextField { - var machine: Machine! = nil do { machine = Machine(rotors: [try Rotor(.EnigmaI), try Rotor(.EnigmaII), try Rotor(.EnigmaIII)], reflector: try Reflector(.EnigmaB), plugboard: Plugboard()) + machine.rotors[0].notch = 17 + machine.rotors[1].notch = 5 + machine.rotors[2].notch = 22 } catch let error { print("Error setting up machine: \(error)") return true @@ -51,6 +60,7 @@ class MachineViewController: UIViewController, UITextFieldDelegate { return true } } + updateRotorLabels() return false } return true @@ -63,5 +73,11 @@ class MachineViewController: UIViewController, UITextFieldDelegate { } return false } + + private func updateRotorLabels() { + for (idx, rotor) in machine.rotors.enumerate() { + rotorPositionLabels[idx].text = String(rotor.position) + } + } }