From a79e5921a9e4f4f1ed1ef8334816ef73200d4d21 Mon Sep 17 00:00:00 2001 From: Jimmy Gutierrez Date: Thu, 23 May 2019 23:16:26 -0400 Subject: [PATCH] passing data between vcs using delegate and protocol --- .../project.pbxproj | 21 ++- .../Jimmy/Jimmy.storyboard | 147 ++++++++++++++++++ .../Jimmy/JimmySecondViewController.swift | 41 +++++ .../Jimmy/JimmyViewController.swift | 42 +++++ .../MainTableViewController.swift | 13 +- 5 files changed, 261 insertions(+), 3 deletions(-) create mode 100644 BackToBasicsUIKit/BackToBasicsUIKit/Demo ViewControllers/Jimmy/Jimmy.storyboard create mode 100644 BackToBasicsUIKit/BackToBasicsUIKit/Demo ViewControllers/Jimmy/JimmySecondViewController.swift create mode 100644 BackToBasicsUIKit/BackToBasicsUIKit/Demo ViewControllers/Jimmy/JimmyViewController.swift diff --git a/BackToBasicsUIKit/BackToBasicsUIKit.xcodeproj/project.pbxproj b/BackToBasicsUIKit/BackToBasicsUIKit.xcodeproj/project.pbxproj index 38b87b5..fea9251 100644 --- a/BackToBasicsUIKit/BackToBasicsUIKit.xcodeproj/project.pbxproj +++ b/BackToBasicsUIKit/BackToBasicsUIKit.xcodeproj/project.pbxproj @@ -16,6 +16,9 @@ 7C9655B4222D93FD00A0BA9C /* JsonPlaceholderNetworking.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C9655B3222D93FD00A0BA9C /* JsonPlaceholderNetworking.swift */; }; 7C9655B7222D9B2400A0BA9C /* RyanCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C9655B5222D9B2400A0BA9C /* RyanCollectionViewCell.swift */; }; 7C9655B8222D9B2400A0BA9C /* RyanCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7C9655B6222D9B2400A0BA9C /* RyanCollectionViewCell.xib */; }; + B3BD50EE2297783D00572B21 /* JimmyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BD50ED2297783D00572B21 /* JimmyViewController.swift */; }; + B3BD50F022977B3100572B21 /* Jimmy.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B3BD50EF22977B3100572B21 /* Jimmy.storyboard */; }; + B3BD50F222977B9C00572B21 /* JimmySecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BD50F122977B9C00572B21 /* JimmySecondViewController.swift */; }; D3BEC0122231A83500DE4678 /* SpinnerVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3BEC0102231A83500DE4678 /* SpinnerVC.swift */; }; D3BEC0132231A83500DE4678 /* SpinnerVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3BEC0112231A83500DE4678 /* SpinnerVC.xib */; }; D3BEC0152231BAF200DE4678 /* PresentationsVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3BEC0142231BAF200DE4678 /* PresentationsVC.swift */; }; @@ -62,6 +65,9 @@ 7C9655B3222D93FD00A0BA9C /* JsonPlaceholderNetworking.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JsonPlaceholderNetworking.swift; sourceTree = ""; }; 7C9655B5222D9B2400A0BA9C /* RyanCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RyanCollectionViewCell.swift; sourceTree = ""; }; 7C9655B6222D9B2400A0BA9C /* RyanCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RyanCollectionViewCell.xib; sourceTree = ""; }; + B3BD50ED2297783D00572B21 /* JimmyViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JimmyViewController.swift; sourceTree = ""; }; + B3BD50EF22977B3100572B21 /* Jimmy.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Jimmy.storyboard; sourceTree = ""; }; + B3BD50F122977B9C00572B21 /* JimmySecondViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JimmySecondViewController.swift; sourceTree = ""; }; D3BEC0102231A83500DE4678 /* SpinnerVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpinnerVC.swift; sourceTree = ""; }; D3BEC0112231A83500DE4678 /* SpinnerVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SpinnerVC.xib; sourceTree = ""; }; D3BEC0142231BAF200DE4678 /* PresentationsVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PresentationsVC.swift; sourceTree = ""; }; @@ -139,6 +145,16 @@ path = Cell; sourceTree = ""; }; + B3BD50EC2297775F00572B21 /* Jimmy */ = { + isa = PBXGroup; + children = ( + B3BD50ED2297783D00572B21 /* JimmyViewController.swift */, + B3BD50EF22977B3100572B21 /* Jimmy.storyboard */, + B3BD50F122977B9C00572B21 /* JimmySecondViewController.swift */, + ); + path = Jimmy; + sourceTree = ""; + }; EF8F5BE8221328F50017C9FF = { isa = PBXGroup; children = ( @@ -171,6 +187,7 @@ EF8F5C08221329B50017C9FF /* Demo ViewControllers */ = { isa = PBXGroup; children = ( + B3BD50EC2297775F00572B21 /* Jimmy */, EF8F5C312213765F0017C9FF /* Alejo */, EF8F5C32221376680017C9FF /* Chris */, EF8F5C33221376710017C9FF /* Freddy */, @@ -382,6 +399,7 @@ EF8F5C2022132A6D0017C9FF /* AlejoViewController.xib in Resources */, EF8F5C1022132A250017C9FF /* FreddyViewController.xib in Resources */, F6F83B192231904C00CFDF42 /* source.txt in Resources */, + B3BD50F022977B3100572B21 /* Jimmy.storyboard in Resources */, 3AA01B91222F91F3008A68D9 /* PauloTableViewCell.xib in Resources */, EF8F5C3022136EA90017C9FF /* PauloViewController.xib in Resources */, EF8F5C1422132A330017C9FF /* GioViewController.xib in Resources */, @@ -405,7 +423,7 @@ 3AA01B89222F8B74008A68D9 /* PauloHeaderView.swift in Sources */, EF8F5C0B22132A190017C9FF /* ChrisViewController.swift in Sources */, D3BEC0122231A83500DE4678 /* SpinnerVC.swift in Sources */, - EF8F5C1B22132A630017C9FF /* GianniniViewController.swift in Sources */, + B3BD50F222977B9C00572B21 /* JimmySecondViewController.swift in Sources */, EF8F5C2722132CFB0017C9FF /* NilsonViewController.swift in Sources */, EF8F5C2322132CEC0017C9FF /* IvanViewController.swift in Sources */, 3AA0B2AC223053CA0013C34C /* User.swift in Sources */, @@ -426,6 +444,7 @@ F6F83B122231904C00CFDF42 /* ProgrammaticTextFieldViewController.swift in Sources */, EFF5949C222F7C8C00142FEB /* PagedViewController.swift in Sources */, EF8F5BF5221328F50017C9FF /* AppDelegate.swift in Sources */, + B3BD50EE2297783D00572B21 /* JimmyViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/BackToBasicsUIKit/BackToBasicsUIKit/Demo ViewControllers/Jimmy/Jimmy.storyboard b/BackToBasicsUIKit/BackToBasicsUIKit/Demo ViewControllers/Jimmy/Jimmy.storyboard new file mode 100644 index 0000000..92b381d --- /dev/null +++ b/BackToBasicsUIKit/BackToBasicsUIKit/Demo ViewControllers/Jimmy/Jimmy.storyboard @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BackToBasicsUIKit/BackToBasicsUIKit/Demo ViewControllers/Jimmy/JimmySecondViewController.swift b/BackToBasicsUIKit/BackToBasicsUIKit/Demo ViewControllers/Jimmy/JimmySecondViewController.swift new file mode 100644 index 0000000..40d94e9 --- /dev/null +++ b/BackToBasicsUIKit/BackToBasicsUIKit/Demo ViewControllers/Jimmy/JimmySecondViewController.swift @@ -0,0 +1,41 @@ +// +// JimmySecondViewController.swift +// BackToBasicsUIKit +// +// Created by Jimmy Gutierrez on 5/23/19. +// Copyright © 2019 SwiftMiami. All rights reserved. +// + +import UIKit + +protocol canRecieve { + func dataRecieved(data: String) +} + +class JimmySecondViewController: UIViewController { + + var delegate : canRecieve? + + var data = "" + + @IBOutlet var label: UILabel! + @IBOutlet var textField: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + label.text = data + + } + + + @IBAction func passItBack(_ sender: Any) { + delegate?.dataRecieved(data: textField.text!) + self.navigationController?.popViewController(animated: true) +// dismiss(animated: true, completion: nil) + + } + + + +} + diff --git a/BackToBasicsUIKit/BackToBasicsUIKit/Demo ViewControllers/Jimmy/JimmyViewController.swift b/BackToBasicsUIKit/BackToBasicsUIKit/Demo ViewControllers/Jimmy/JimmyViewController.swift new file mode 100644 index 0000000..7f77e16 --- /dev/null +++ b/BackToBasicsUIKit/BackToBasicsUIKit/Demo ViewControllers/Jimmy/JimmyViewController.swift @@ -0,0 +1,42 @@ +// +// JimmyViewController.swift +// BackToBasicsUIKit +// +// Created by Jimmy Gutierrez on 5/23/19. +// Copyright © 2019 SwiftMiami. All rights reserved. +// + +import UIKit + +class JimmyViewController: UIViewController, canRecieve { + + @IBOutlet var label: UILabel! + @IBOutlet var textField: UITextField! + + override func viewDidLoad() { + + + } + + + @IBAction func buttonPressed(_ sender: Any) { + performSegue(withIdentifier: "sendDataForwards", sender: self) + } + + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + if segue.identifier == "sendDataForwards" { + + let secondVC = segue.destination as! JimmySecondViewController + + secondVC.data = textField.text! + + secondVC.delegate = self + } + } + + func dataRecieved(data: String) { + label.text = data + } + + +} diff --git a/BackToBasicsUIKit/BackToBasicsUIKit/MainTableViewController.swift b/BackToBasicsUIKit/BackToBasicsUIKit/MainTableViewController.swift index 3b29da0..2748623 100644 --- a/BackToBasicsUIKit/BackToBasicsUIKit/MainTableViewController.swift +++ b/BackToBasicsUIKit/BackToBasicsUIKit/MainTableViewController.swift @@ -19,7 +19,8 @@ class MainTableViewController: UITableViewController { "Jim", "Nilson", "Paulo", - "Ryan"] + "Ryan", + "Jimmy"] override func viewDidLoad() { super.viewDidLoad() @@ -66,11 +67,19 @@ class MainTableViewController: UITableViewController { case 7: demoVC = NilsonViewController() case 8: demoVC = PauloViewController() case 9: demoVC = RyanViewController() + case 10: demoVC = JimmyViewController() + default: assertionFailure("Cell not configured yet") } - + + if indexPath.row == 10 { + let storyboard = UIStoryboard(name: "Jimmy", bundle: nil) + let destination = storyboard.instantiateViewController(withIdentifier: "JimmyViewController") as! JimmyViewController + navigationController?.pushViewController(destination, animated: true) + } else { demoVC.navigationItem.title = demoTypes[indexPath.row] navigationController?.pushViewController(demoVC, animated: true) + } } }