From 83bc7ba5e5bea990413f0bc5ad96842b47153b54 Mon Sep 17 00:00:00 2001 From: Tam Phan Date: Thu, 9 Apr 2020 23:10:18 -1000 Subject: [PATCH 1/6] IBOutlets and IBActions connected --- Tipsy/CalculatorViewController.swift | 32 +++++++++++++++++++ Tipsy/Controllers/ResultsViewController.swift | 22 +++++++++++++ Tipsy/ViewController.swift | 20 ++++++++---- 3 files changed, 68 insertions(+), 6 deletions(-) create mode 100644 Tipsy/CalculatorViewController.swift create mode 100644 Tipsy/Controllers/ResultsViewController.swift diff --git a/Tipsy/CalculatorViewController.swift b/Tipsy/CalculatorViewController.swift new file mode 100644 index 0000000..7516281 --- /dev/null +++ b/Tipsy/CalculatorViewController.swift @@ -0,0 +1,32 @@ +// +// ViewController.swift +// Tipsy +// +// Created by Angela Yu on 09/09/2019. +// Copyright © 2019 The App Brewery. All rights reserved. +// + +import UIKit + +class CalculatorViewController: UIViewController { + + @IBOutlet weak var billTextField: UITextField! + @IBOutlet weak var zeroPctButton: UIButton! + @IBOutlet weak var tenPctButton: UIButton! + @IBOutlet weak var twentyPctButton: UIButton! + @IBOutlet weak var splitNumberLabel: UILabel! + + @IBAction func tipChanged(_ sender: UIButton) { + zeroPctButton.isSelected = true + //tenPctButton.isSelected = false + //twentyPctButton.isSelected = false + + } + + @IBAction func stepperValueChanged(_ sender: Any) { + } + + @IBAction func calculatePressed(_ sender: Any) { + } +} + diff --git a/Tipsy/Controllers/ResultsViewController.swift b/Tipsy/Controllers/ResultsViewController.swift new file mode 100644 index 0000000..0a929c2 --- /dev/null +++ b/Tipsy/Controllers/ResultsViewController.swift @@ -0,0 +1,22 @@ +// +// ResultsViewController.swift +// Tipsy +// +// Created by Tam Phan on 3/17/20. +// Copyright © 2020 The App Brewery. All rights reserved. +// + +import UIKit + +class ResultsViewController: UIViewController { + + @IBOutlet weak var totalLabel: UILabel! + @IBOutlet weak var settingsLabel: UILabel! + + override func viewDidLoad() { + super.viewDidLoad() + } + + @IBAction func recalculatePressed(_ sender: Any) { + } +} diff --git a/Tipsy/ViewController.swift b/Tipsy/ViewController.swift index c716da4..395635d 100644 --- a/Tipsy/ViewController.swift +++ b/Tipsy/ViewController.swift @@ -8,13 +8,21 @@ import UIKit -class ViewController: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() - // Do any additional setup after loading the view. - } +class CalculatorViewController: UIViewController { + @IBOutlet weak var billTextField: UITextField! + @IBOutlet weak var zeroPctButton: UIButton! + @IBOutlet weak var tenPctButton: UIButton! + @IBOutlet weak var twentyPctButton: UIButton! + @IBOutlet weak var splitNumberLabel: UILabel! + @IBAction func tipChanged(_ sender: Any) { + } + + @IBAction func stepperValueChanged(_ sender: Any) { + } + + @IBAction func calculatorPressed(_ sender: Any) { + } } From 1dca05f2d04ae5acd52b2c44e05b43507a4ec70d Mon Sep 17 00:00:00 2001 From: Tam Phan Date: Sun, 12 Apr 2020 21:27:11 -1000 Subject: [PATCH 2/6] First set of features grab tip percent, print to console when calculate button pressed. --- .DS_Store | Bin 0 -> 6148 bytes Tipsy.xcodeproj/project.pbxproj | 20 ++++- .../UserInterfaceState.xcuserstate | Bin 0 -> 30821 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 24 ++++++ .../xcschemes/xcschememanagement.plist | 14 ++++ Tipsy/Base.lproj/Main.storyboard | 75 ++++++++++++------ Tipsy/CalculatorViewController.swift | 25 +++++- 7 files changed, 125 insertions(+), 33 deletions(-) create mode 100644 .DS_Store create mode 100644 Tipsy.xcodeproj/project.xcworkspace/xcuserdata/tphan.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Tipsy.xcodeproj/xcuserdata/tphan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 Tipsy.xcodeproj/xcuserdata/tphan.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..01b9c63c923b6f1bb1a0396a29a156948ceadd9e GIT binary patch literal 6148 zcmeHKOG*SW5PhYyXmDXKTnKJ*0%2~@4(-P6cmSCh@i#*^ilDnbnz-{GUctSuQl(5| zqvAqDsvvolq+XJK&`An_Ol}urpaf8`D2h4*rrm=>8y-9&N}l5$`?$j#4Hg3v{lzZb z`!=A)b7Qul$z0NM4=uryLHc45JPOLV>;l zo7OD#{y*d|GnnM}DbWfALVf_B-TLA4^sY@TCoF0j*QrCJ-+KhGq36hM e9<=eKKI1CK&QNF3{!AyvLm&$hRVeTa3cLbH7CONI literal 0 HcmV?d00001 diff --git a/Tipsy.xcodeproj/project.pbxproj b/Tipsy.xcodeproj/project.pbxproj index 794ee36..0304797 100644 --- a/Tipsy.xcodeproj/project.pbxproj +++ b/Tipsy.xcodeproj/project.pbxproj @@ -7,19 +7,21 @@ objects = { /* Begin PBXBuildFile section */ + 3EBB13D02421EBB0004D0768 /* ResultsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EBB13CF2421EBB0004D0768 /* ResultsViewController.swift */; }; ADB689532326708D006D4E2B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB689522326708D006D4E2B /* AppDelegate.swift */; }; ADB689552326708D006D4E2B /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB689542326708D006D4E2B /* SceneDelegate.swift */; }; - ADB689572326708D006D4E2B /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB689562326708D006D4E2B /* ViewController.swift */; }; + ADB689572326708D006D4E2B /* CalculatorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB689562326708D006D4E2B /* CalculatorViewController.swift */; }; ADB6895A2326708D006D4E2B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = ADB689582326708D006D4E2B /* Main.storyboard */; }; ADB6895C2326708E006D4E2B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ADB6895B2326708E006D4E2B /* Assets.xcassets */; }; ADB6895F2326708E006D4E2B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = ADB6895D2326708E006D4E2B /* LaunchScreen.storyboard */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 3EBB13CF2421EBB0004D0768 /* ResultsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResultsViewController.swift; sourceTree = ""; }; ADB6894F2326708D006D4E2B /* Tipsy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Tipsy.app; sourceTree = BUILT_PRODUCTS_DIR; }; ADB689522326708D006D4E2B /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; ADB689542326708D006D4E2B /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; - ADB689562326708D006D4E2B /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + ADB689562326708D006D4E2B /* CalculatorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CalculatorViewController.swift; path = ../CalculatorViewController.swift; sourceTree = ""; }; ADB689592326708D006D4E2B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; ADB6895B2326708E006D4E2B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; ADB6895E2326708E006D4E2B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; @@ -37,6 +39,15 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 3EBB13D12421EBC4004D0768 /* Controllers */ = { + isa = PBXGroup; + children = ( + ADB689562326708D006D4E2B /* CalculatorViewController.swift */, + 3EBB13CF2421EBB0004D0768 /* ResultsViewController.swift */, + ); + path = Controllers; + sourceTree = ""; + }; ADB689462326708D006D4E2B = { isa = PBXGroup; children = ( @@ -58,7 +69,7 @@ children = ( ADB689522326708D006D4E2B /* AppDelegate.swift */, ADB689542326708D006D4E2B /* SceneDelegate.swift */, - ADB689562326708D006D4E2B /* ViewController.swift */, + 3EBB13D12421EBC4004D0768 /* Controllers */, ADB689582326708D006D4E2B /* Main.storyboard */, ADB6895B2326708E006D4E2B /* Assets.xcassets */, ADB6895D2326708E006D4E2B /* LaunchScreen.storyboard */, @@ -138,9 +149,10 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - ADB689572326708D006D4E2B /* ViewController.swift in Sources */, + ADB689572326708D006D4E2B /* CalculatorViewController.swift in Sources */, ADB689532326708D006D4E2B /* AppDelegate.swift in Sources */, ADB689552326708D006D4E2B /* SceneDelegate.swift in Sources */, + 3EBB13D02421EBB0004D0768 /* ResultsViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Tipsy.xcodeproj/project.xcworkspace/xcuserdata/tphan.xcuserdatad/UserInterfaceState.xcuserstate b/Tipsy.xcodeproj/project.xcworkspace/xcuserdata/tphan.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..76ab0f021387ac0dbb66ab6ea4589d6b57c4fac0 GIT binary patch literal 30821 zcmeHw34Bx4*6-P83PXom-b|jYw!KvYp=ET z-s_BRX);)>Nl8ZuM34kU&;&!Ugox-hIAXlcY%!ROLn1Wh`bGnMtBJ6hS_Vg$Mvu|e zTP^Mcnzf=%>{?M>s+*+K=GYS*B6<)#YpbmqtByk(-N?Q~Z^DW2A$$oxq7M;INQnd@ zkw_wBgq%nwQiwF7A5l%z5VgcWVh}Ny7(xssh7rSwM#4ahA;uC-#B^c?!4W+12=OQ} zlX#4nMa(6hA{G+Q5=)7fh?j}g#CqZtViU2Ac#rsi_>lON_?-BPI7gf(E)W-quZc^< zH^epKC*o(~I&qV@L);~PC+-pVQ2+`=K`0o7APEXZVJI9$phy&jVo@KIfaE9{rJxMd z7ZspFRD_CA2`WWps2o+GfoKpKj7Fk5q(getgvO%@Xd;?~CZj3nF*FO!M)T1Ev=F_4 zHla7sTWB-dg0`YnRDh^!*3$r`ej97ql#hmm!piEJgO zk{mgce4Lz1K1I$apCgx$%gE*AR&pD;oqU^ohulHFOTI_$BzKYTlOK}%$HlZ2&#cIBF*K81)1-hkBY?KrNzP zq+X}qqBc|8skf>3sGZav>H}&Y^)dAsb$~id9ihIUPEc2=e^A$`pQxXy>(npQuhb3d zCUu7G10jty=^OM-`WF2geVe{R-(?6!#Pnc#GH#4J zOdhlgcQWG$x(NVEQusm;$DP>CX&e1~V$GpTWW416`nQhE==56L3W(V^w^B%L4*~NUoe9G)+jxxuXX3HE7r9{UXYEc+b0gk8$M#J~{8T_8oQy`!4$)yOZ6;zR&Jv z_p_g|2iVWqFWB?!1@i=(-pIa!@JLamS|C(H8E zq$xScxzZH1I$xTTnv)_`%2HBfvb_8>MV_)w>{*+($Xt<5^4)lsoO z5k|zVAp(d%B8UhkLI?>F$}t?viMSqIPp%i&dkqmzL=ce>6-~qt5u6j}%(+06nDc|D zq>;FEgHdamP+-*~Z&9RW3((YYG)AdO|9!D1NQq#I)TA@liL<*F);%s=0o_xO zn@sc#9a@w>WhY1CYYAT_`W2%KV^mk+Wjdm<$h@@zS6~+8lm$0wI z;vPMF^>%W0aTU9{dw6diGR#9DBTxr&gH<(&2wowEG;=wb+z(Lkx3oM`maiZe9!T4*r#$c=yiz})N3}%ZJ z3TiPKwL0^#ifT1RYlRI5;*OfiG?PrNRtrQ|TPHQ?$~Bg;bz%<(9UUWDoF`OUXl}99 z0~8c%CysQat7vT=tuu3oqX3=0J$iCvPmX}8AQHO*V12}do4aUgnIu&x z$k&9%*DXz$=59XJ%K zZ692ODH=AshV$gSaG8Enpo@|_nL(P3av5*~dmQdQThWeI;W#K;GkSPMb)Es(o5`p# zPiof`jZB)T)N8e=^+`$kwB)2Zu|LMCEG0=mX*bA%H0wtA1BZ?Uc~wai10E-XB)SM> z&dtQTAa8yKlI9hVCVPVn8IKew59GxnkQD_lSKeyH3kO~^Rzk8YA{)3C{?-XY`+BQ_j*44L%hOp54Mtp0HLNODoUN0TTB`xV3_8mQ$e*t@*sJX6SoB8_ zqlvgx#7Lr!7)5Bf04|UV;(}KJyVF9q>$wmvoh#u=aqA?5>rGl+0+dr~uqJdgDgpRP zYrVDA3`8#qY6j>QlTBy>T)bu zz)ELmvg$B*%r|1x0GGy+QvSpi4J>BbVymv%QUlDiP8SUyJDdx0n46~Mw>Kdt)q;O zhqgDQ$N<8{SG zU`d*$rb&)?b!Dx<>2QUOh9<39XSB7gP8<$-)U9R+u$F0BjrEPyLZ4LW^gyDqUIzl{ zVVmOg3vt7SV6H#_%`M_LfRY_$)jI1+;udk6$gTy+L}wkY)Yr@9nq+NivNlOfz=Z#^ zne;C>n!QU9ft-oBR}exZq7aQ3#3B*ufqJ4|s5fzpE91(!3a&p_$qnGDxN5G3tK|lA z*{>iMs}00{i?Ix6j+3+qY(Lwqosjl}|@ z97xt_ZNRpPUpD+jo7G;Ahrp)nGep07j8N5g0w5tHpVC5;Ku>Ey_aKs2@_H9F&XHD32S( zX}Hl`J*VY#oStjohSrId_5~16IX$T5xvhYIof)sO9a4g$mIRoMMp(X}9vHFIzmqe^ z3gZ9hRx1WU(%;F5^@BQbf{>-Q$!Z4S#?++yGwQn55pJ(TkQN?n3C3=nxNk?QYE!GZ zUT0q{YK#A*?cGw8nLv|?>B#-(y)~fKP(QXv*VIxcPO&HbOTApI1#V-oI+j1wA63EP zhCo2(4BVJ@EMvfow6SY18)PweEz@bn!pd%AuAqJluIh-fv(N&wskuYLb+8T)wK2ek za!qYS3`}(ZSU^WcJAcL!oqd`*vW-F@wzVM*XKX|DoXN%+@&?v)2!J+`MVJr`NV*a= zA_E%3wQ%FPN!(CJA-j4ZzM@@nVA|+m2-j3#8$yaf0OTsB$Xe9;lLsDj(%0K$R1rN+_aJObu7f z8*D4Uk^gZt_ksLR0oR-rcorrrCJ%<*d=g|vjF?ta# zK}*p~Xc=0LR-iU+8aJJr!EqeVJ;FW8&Ey{AW^uE*$GIn7MJv%N;uKnq*1(DvgVw|I zE9h198USJrw-DCxXSwH~A%5KR@caVz3U^k3iJL=^?-(JFr-gQww>DV~Enwrq!h5CJ z&kcZj36<`qF zBDBI$sclC_+dUVoT8?PD-r|sDJb)y7l{P{IDqmJ=unK zb8{ayLq0;%cC;7m6{&(qR$_I+Cdoe!`#y_zVkTQkPfJZtEL?6hOjTt=?C(j zfxKtA`H**kLlW=W(c!9zD{N)Js%IbmGM(O9W2!PVG+M>P5p)TC11q1LxQo7p)e?+v zjzKKb85^vPFnC?UY$7AKNLUBIL*IkNts{Lq`hm#q8sO-&AJJ7ojy;BcLO(-g*U>NN zS9Am2M7M|&P=Q0~DKpjE#(rcccfe?}rDz7>xic7BQ!$DApOZ zHvOS%pj&;T#;gGofVm3yIUpA>152h2P5DMJFhCXv67rTAj5?vXAy^)SdYWM=cX!m+ z84dH{4+Wd*xpiW(IDuO)_T&hU`}UtYafKcPkBr2`M9e)ciPjbv{6q&fEr~X@S8C{A zElU=j6CXYR0$ei5EUbhLtf|pW?63?tCdo=No9u_N^3M{0HVj!EG&r&eCFhX2!uCkF zY0-(w?p(E!HIx6L9lA4%KD0`Aog-bWUb<-otl60q}?aj$V3xz|^c6=3kI z2Dp0=UiGmnX_mj((Z^;$taE^hkEe9^E(Br$UsheG6&55iqs^cPS`{YakLlgI#o~Ip&yN5H zJ)Js&O}@l371z$a&+X>6aA$xW?c`2(VZ3AuInKs-PjT;ZTWx%@Na(fkB(;j1Ku#nl zk(0S?+;;A5?ww9<*M)sJSixW84o}#)!;VhwaDxsqH(zD%wr*N|(;b>w<(5BCB0 zA@>otm)pmE%zeUr%I#lIzG5>GMv$+QZ;+eFH;D*xGxwQIoOk99a)-F%+!yfe1QrTxX|nC0bwCNyJXng=)BroHT47y-6yXonQ;&B`VR~A12`0VXq63TQgLPTDq-p|Q z{LdPl(`s!rnW3Tw`vjYe3rtOztqb7YO;T;-9_|3QM)>{_2J>FzjX&JyVCul1HR5Q; z@E#yR3iD0i4U(oP;Hzu=B?$ABkc5^d`P7Nv?j(1rOR2Sbp#G2L)rqAY@(NZx1#~z#ctWMF zL1SsPboRP{>L1CgcEhsG4sYj?n5DFn|G+S}8J+(aC*=K!{8=#cbmNLP{@PAn$C9k-u?Yap$=6+=W%-9r7-S4)?f=++`3Ru5n3&vD7K-A=vCn zjxB`_S$wDUEE`+sLcyP1sZ<=@x0rZZcb8AEe%FXn}PH zkm%hliLG?Z@*Q+~Q9cg+neyen`f{NyT zfCgRRWF37LuA23N4O)(R;;EzuvdV}UDw(?qz3>lEB09Pd@{a13H;u{w8mV;dr#9jg z^c(b<8%T>5Fun-3HarB5iuzHoi?xnYQ8`pDrG}lhe5!ydq>8xf+%Md(+zsv~cZ>Ut zyUpEM2b7mmWmGv;LG`C9sR2|KwBjz0Zu00hPxj);7@myf$v!*@`v3sSTu|i4wwMe? ztHpNk0(b^&koenmGy!rpPGTuAnSp0ph70F2s_Pqd*ofyTdGF$OVVjOwM!veF02k(TSlRyT{#MN!3$YO2;FDN6tLji@PNLVUr)T z_$pwo4qE>%ujsT0I!tHX4TFDVHr0RJr=Z4CEqD?(QO%T*GVuuUh~g2$Bhe~q9A%~~ zl$A$4dDM$Xy?NvW+ZLT`Gc^gX!#pDE#4k>iPQ>h6ivQr{BI7U1%y>$6DmKEh-4Dbn zvlYwiS+b-k+ZQnHW~D}ftnUbgM;s=Hc-zur3wM0!Z(FCbq_Tu=1Wy+Trt8G7{?`fa zB-WBxrL%y!!^V|5ga3XTlz*cQj|y#I>%_19A8muYa~z=0I|f3IAMrpWJNo{w48-F? zBYM<{SO0G`;-4tT5A?r0t&?_HCx{@}L3?u70gySq*-<1*1r!M<0H`Oax!tz!sCg9Z zhIZM{qZU%nb`N--f(_BGDV9(#WB$98dWl*_Er-($ZDcdGl3K+h7aoau%6(vpY~3|!HYn5P@BYl79&oLC9+Hf$v~TM`YGjV7b6 z+R!YRBNAHdFhM2=Uw5tHkWfQFojB+3)&K+e&*61kC^x81ocDLj{lk0^kZWg3C#j2= zp`4;l!_lZOsk78q)H&)rb%94AJd*Gzlt*Da3g=M-k0N;##iQtT)YpP;OI@bEqrL|@ z?+TBEGcX{z#PdkXqa+RHMR6#tGEA06j$mND6Z6RJc_kzt`r!bS5d!H z_wa{DaXjiH`~~e5q}y;+l%QnVR~ee6d)o9?x(9cdM+u-}(!IH(JWAwbf6!Llw(S-V zb7XU)J#C69?ZKVok^CXq969{yNHB=d0dyc8LmBq~uW= zkJ5RR!K1!B%H&bjdOFHs8ln5p@o+#Tf==X7HfRU<_aKi{JW_)q0tm|c_dw8tBmW<6 z9-%VXP@w$*SbTp zimnx~RfDmW|B&2{`i9Xu;7asxdIUX^uA@iM8hSKcPiuKp$fF`274xWsN2NR}<54+} zDtOd?9jzB&MaR=)ZJ;vps8RqG;E6|70;FpHJs|ZT#gypD7%o$IIG7-q)9C3Bh09~~ z;{se}W4Kh~0iT26Qu82O$afuMK961?pkzKq$-swXa^!e{UWqx-V){jT3B8nliC#u8 zr&rKzbUTj*^JoZt z{)#?FpQkU-7wNC*OFU}k5il7reYEgs9FNRAvhc{tqgEb`Ur&GA0kSLhW$qe}CUk-f z=97JyoBsbXW={AY*ae_}#~1@JO|)Z-fqPJ^7?PpzhewlmG+Foy7;_Sf>|@UKVw`O# zW1KL`rUFVBSB$c0526e$b!75nd~E!S@y5`a@sLc896?Mpta3~+6T(QCP$rBCXCjzL z24rlWN00F6Q6A0Y(PKQC#iQ9gdYng3tYhFp9R8)_87W@nm?R#}>9Wer6;`>Y|2+`( zAGOLcSSVsZD0Ov?F9_B_J`zlN@f-FGP9al!>nc2@n{u~Ugpti9OLY);SY~q=Rj?OKd{jC zc8vFD%s~NPpJRM&!YkHcyv)JDn?K;ojd?s=)uWqM$DCl`@F8qvGp8`Vwmc-aqrUSD zTh8JbI5uV8GtBj=3U0i;gE> zw*l)H9=-42Vrn=^VY3r_@b7`D|ET4TB>*ujY})O%BZj3hdwLU2F}}(6fYT{2almc% zz=&v50y6rHqL4sBD z<2rH4-?eJut=ojA7PDzg;-6onVkK-85%)41%7(GwYy=z0qfdFXpGTkZ=m3vCf0>PD zW7tSGjs-;n%uZiJ7>~Z;5$w|oP6dPwT-!Z$IDih@llI3ho6&F%%(49omn-4Ac<1>~ z*f+M{M1+Gpm1fg;1ME-Wn?|{vd#N1t{@PI7g<2492_cLcx|wZV2(C%7XB@03@V zjIyL8*e1u94~Lpe&Efs*)*Ra!!{%VnEZB@zu>;sDwwkTs(P^1GCm zP=?P?*NMZrr|sWKKtd%PFfeNj*6@D9Np3jl=0do#I^3&z9$n(r3~khmlPa2}E#n-g z1=ulc6P`n3dGu`?3p(dzj88v2TBSzQ1Y`eJYZGjDW1tK&XswOms+My$R_*9ZGdl^c z39=T}%C@rO*$M1K9s$$+fk#((^dpb1^5`F{*~#n_b}BoKolZpX2sG87c=R)me&x{( zV7Ey_F%}9m_%87%cJW&`UQG9cgRp_a+=hdWFDGl z)JvP?(t^rnM~BU47YN&~9mC{^S;W2ocQaWKv~RVsi+S{$aFqm~#)PR1r_Z`wXl0kN zYYFdl>~eMm+s3xDE7?`-%j{|vWT-nly33>Ac?8<&eV!zE67eL-lhitP9o+edU|(Th zWnW`Avab_xPKJh4JkC7H@FdHVBA)EQ!!c|>IMxGa9U632*gYL;u;e!x8nDw7U>-uS z(0#?0K?XSd2-g{*M?2En&Mo2b^X!_|aVQv0KMTRO6Tnuu3TC@^Z4VU6Er6THO_Sh2 zSl0qDlWf9AQyw4!HtWDq1irW7VQ9ho!4}7Uuq-(t1y0fYAru^}XvbT%HUvoj5SNi# zkeZ*LFT);aQd6ZVa%HMCJxzh#NyrM+c`_Nep-~Tw(upUXSF-!qkJ(Rn(uF6ZdC~_@wIn$5*8Pl-{X7vsxVp6&-=q-+ zzgpLT&jvw97Z#2#jkut(WrJn71lUOef`lYu-L z(s5LbJ;9#Aq@QF@v8Q=b%#&_B>AsSAgFVXvPkf6fJ$Ta7v5Ix4qZ_4g4+z+!6-Keo z15|ZOm1f0B#6#s0>^figdy^ykR{4tB)Ef}mQJ(Y;y`A)^1RfHV;+65&OY z4C2XPF3C=^&7qE{H=*qB=Dqfhj&%O(zTkTFtTCHRR&WF-4(sjY;TaqviR+WtH!~|c zvY)!N4Ev86GIZF;dVR};iBo6TeKrYhcfhBFy=MjYCvfe!^C~3xY6|73A=Rz*^*Wta zr#<53?c(Df^d~-D+I{^vnq%4n0>Q0KAm;@hD+=KF2Bd_uI41Kk?9ayq9Qwq>LJYo^ z3H9m=nlud-d}Y4l^dm%Kw%4%%>Grr7e8h;jfT0Q11r^oOTsY8r*abY}z#edIF|MIA zZx^!txt^HRBt^z5?1hE{|4$q^d|H*N1ZOiY;BE%IVsNlu58iul8JM1q+;Bt_h_1om z1v+rBVAjEvYkWn-@@GkEi)$@#9=bmqi#CHO)+LFrqZE6Rj;O=lE~?zN9B|^|jfu=F z3~J9Wz&<UTJ74JV-1alF)m}9nvEtPc2Fb84A4r< zM`0-dmTCI}=&Qyq!(jP=xK_B^(QJdHEigBUP=iYvF$JDOBuB@YEiTs9^6@or;Vcgh z@fWMrP_AwH5%=VRxsd*DZjA)t)(Dbd6A28V89a9tR^<#CJY=XubcX0b_<*~t1j1EQ zZ)wS?tSrMk!w9tC|J{FX90x~`@N-0p%jzEYFTXKbm@trP7knmZE%nU=fiej~bh*C8 zY$b@E5fC0e!PXFp8)jF)N1nZGx*Ozo9Z?B)%NG_#~TJ#z_W@V z$gmb`ZWTP2!1L(Vv9&qy91qX0=*RpF@i;-BQJ)yB#WnB@^-)*NrYf91jv(kvtu8NL2&eU9O{JKI zFbIFkGQJvz+i0HLsK#_cUG(uWnvzO*hEo*uFS@2eoF2+y{9CM*xJ>xYk} zZmq&?hc=1|bjDiThZq-}#++XW&(K$*9mGJS0rxm2aGs+BS2;%T-zfo?GzRcNgP$6} zPgpa2BtSttdF_^*c0R)}kW=dQKL0Y`G8 z(nhO51CGbFd}pu41Ua;}x`ceVl>%*QpxFo>r!+R&Y%QmK=p^uSnFPKq%jhgR$yS>g zQcNPGw(v|_n4{LtmgBa4*HP;@ptWo3yY`o(58sFWvO>vC&_e7c2=|W#sJRPtkG1FS z>`hyZ&-k~-w6rXGdO-2W)sR}CLh^{Y&QSmPylW2`HDP?aj{22?_lF8oXj&hNsia8TdWfK~H5DJm9{^$T7fQ1GLeB00CL`wh%lP*b^Nd zmj~(W95bPuKa_wdTfG>wIkr+T!kXcOM^nBcD-LXF@jw=0!@L==>^ zcj^vbLUMfWu8#@HE8^|@Y_(vdNsiImh97a-J5_Id#=oUyBppFNo^4G102)c3_iuMht~as1irmZy-#hoJ-tHh zfZsPd@^weJFps(;9OJFtj%eIQ?Dr32sw?)pA^`W7qqlH+$4HH_<$7==x*`UT*k7Zl zYdPIHf-pL^S?3b&B6AVB#JMP3a=^VzDE!J@RPYq;66R9o;sdcoF3~P|E&(0=Ap%i-UnAhaY~xNEdwaXiFN`4xAfuC?VUA|#I;+5I&RBa*0#9(% z>F8G*Lb{aD1fG|TkYfVSfn9*%*=_`0BI%Y!nD>}A6FAqvWB4aC0S?B==wjeZ{Rs)3 z1Acf__GiqkGT|5VDuH`T!7s0h&ZhIgPcQJXt}TGlh5o`E?a!(2Ix}=^2ADSU*=SqY zw$_0c+ak7rkbrMn2nR2>CGeb%Q(56EF|0R)+SD@1jO|wvux&NzB*n)11Td&1$zXNE zG80Zi5Z4FTWFh3eA8yZ%7s6=#k0E-2Jmm=+X@En~8_e68x_Hhkd32q?Afq%i7J9&i{^3Zqy=*TS*2arAV0E*w%?3!aldppU=_l56xm#u>aI_W{4h#o+C@0X!Vf zViv)6+h*oN;Lw+t8!XFu!}us++=hS!a0)vYJP2=OcY$@_BKxaIB=QsW5oL+`gLhx6 zXqITP=oQgU(P7ag(XAf6dxZ3m_bBKww1=_BBRv-NSl{El9*28;+v848anHz}89n>= z)b^azb6(F?J>Ty6dCyBd@APu(72PYVS52=mz4%@)^m?t=hrQ19y575Y@37wKy$AF* z^yYfM(EIh?`+A@6{hO1!Q=F69X}D9X)6-6CoOU^#bh_^B>>TB+avthzb$;4;o%0^& zv(C3%JX{i7ie0oWGhCLqY;ig4a@Dn`You$A>qythu8UmXbp71*inymZN~{)Z#M8w~ z#M{MRh<|nSaFe<9cWZW=>$cwQW4FuhBKIiwe0Qz;O!t-Ud)zO2P#)nPYL9x4M?F?~ zeCTn>ll6@DEcP7Z`K0Hoo(DXydAWO~cn$QL=(WV_U9WTAly{VOv3HaAJnv23$Gva+ z1o`Cn=zN~=dCljr&rRO|UzM-UcaHBy-($YF{Um<*eq;US`)&36(x3K^^B>?p!GD?m zhyGUrJOla$)CbH7*c5OokPM6qtO}eGxH52m;IH8QwlJtAXmQY`SRogv>#yd*i2Cdmtu4&|dn9aQ*q7nG z!qdX_;m?Ne4!;%=5>Xy8HDW`=smPv@X_1YQ&qwZ!ycrc8H7II!)YhoW(Z12e(UYS$ zM4yRqj_DUOE~Y)^Xe=9>7CScfrPzaUWSkXoR=Y7aNseKH6Ug~owo{3M7H^#Te ze<5{}=19j&H%QMXcqf!4Jd&_A;c8+;;?TtTiF*_8B`K1cV0Ak!bC;FK9+AB*`&k|* zua_^8A5C^nE=Zn{ye;{sls+lClw~O=6dsCl#caiH#qX)gRCDTUsoyChl%teOm0zTJ zrd6iRP1~2wr01s3NZ*nETSjVzHDgo8Kl)1hj_td?@8!(sOkL)x%!^rJS(>c2taI6t z>`~b(vd{Gk?WgJ2-tU4cT%}d5R(+cjn=>Zom7J@&NxA0S&AB(#8R}{3U3pYqVcwj) z1NrXxwfQgRpDhS0XeiiFaIH{LIHhn`5mQuJG{5MJ;-KRC;&sK>N|YtjNq}4)6~5=iWxO%)cR3(HT^a1 znqNm3k6t?ZTD`jd`T8HUD($n{?{rzZ1-ftbS^5R~%MDo#3md*`?AN%c@rprhc+v3F zn4&Su$J`v-f9#sE_nQVaZEWt*JgRxS(cL)K_<9=G%bC_T9ZerSefNy;88c^G0*8BR`Cj~3{6N?mK(=@UyNJ@@gVlts&*@AZ7^ z^XFbDdtuw+h{ew=zWZY1i^rDaF4?#=aOo3EZ@#2`>F_euve%XeEq`+P?G=Uf_kV4ZT^y7htU=WQT2v~KwB zmEo@(d^PXYZLdjRYuo6(@yXYT*IQrz{*6&@9N$#BY4@9HZ@%_c?B4*>-4q$@blE_kDZwI|=Ws*%7*9$-7?f&U>%ddo$m=zjN}=Uw5_ay7GR* z`xkfD?LNI{@SdX|4EW%{hov9x`>5cfJ$rNZ?%bEPZ^y?OA8-F8?USvarhd9*zheL9 z&lI0+K9G7~%je3^w;fDB`1Ya9L+>5#cliAyc}G4vT72}=V-?2^9j`rp;)~&5oI9aC zartD^$)8S*KXvCc2SWUuFU4OjIvaSl{j1ooHl9m8_wM<;^ZPGUUpRfS{^Ac`TfV+~ zY34W1-z@qz4%md?p&GmquY;5uf|+`>mRCr?7uen+NGb& zKi&U%?sdQGYko=jW%sX@zn;C(eB;i|Ik)_7t^F?+``h@H^PA6x>dnT5^`z6-E+a(Tx z;{g2Dh+pBNx)Z!3LJseS$cEd~W$<)3#9{;mJ_gE8xj6o(x~jyn(z$z9K*5jqeP;#SP=h2%d}r*9gP#?m^hY&HUJ+ z`7aZJ7ZgYo{qT}-BAci7f0?od9Q4>y9u|cWuA*>J1fVJbyX^_j*&P;X3AmcYlaV%O z2BIiYG#DUp+3lhz?7Ki*W72~4OkG zd*W8S882>Y}@ZuOR#)t7^RPcfrExa106_ln) z%oJuCGlSuoXW*qU&w>i|0`nrX6kZLpg4xKNU@17?qlXu>ykvXv%1(B#Q!ghcCod<7 zQ>>HHDcdREslsWPQ#TQfbROeuac*^<;5^BBit{w*70x@Ik2qg< zAzWNt+&~fX0%M4uOMpv|OFSq=Nnj>PaY=PabIEYYbSZTi~hfMf~%WrjH|*m z%{9X{%e5b-vl9?_yHyDs~rpihaa>;s9}sxQ|#WP7=$-DdHS)p143< zEG`w7i-(Fwi0j0o#agjmJW>3Z_;K+Z@l)b?;`!ob;^pEM;&$;y@ec8O;$7n1;t#|h ziT8<*fueR&d|Lda_$%>w@kQ}HH(xioTe;hCx2bN^-JWz?;P$NBBDWXZmbb~9m9rt(Lce=k1O5TU= zd)+^F|J406_s`ugyMOO~#r>-LHTR$0e{sLze#`x~`(5{Y9)t(!;q8&&k?S$sV}i#5 zkJmgt^El&i&6DwT@pScc^Yr%&@r?0|_3Y!B;;Hs5@vQQ!@f_P zYdzoa-0k^+=SQCVJU{W=56a^~&%>TayYd>|&U?D|qu!5s&-R|{ z{j~Qp-V40fd++x?>3zogtoM2Ei{6)fC?BzphmV(!uaCb^pih!dx{t~y*C)@Xz^BNk z)@QiSNS{$YqkRlMV||)^Og`g$X86qYS?;sR=N+GYKA-y>@;Tyj%;${HS)X%07ks|< z`Pt`=Zx3HrUpHS5UoYQ4-(X*fZyYFYd*Zd;=lKiUuG=5gU z=lxdu?f3iI@3w!WzuaHpuk_FG&-Bmsuks(}Kgxf!zt&&xZ}Fe(Kh=M_Kj%N&{|Wym z{h#um=fBv$-G8J17XNMjZ~O1?-vi3=UjL8%KlT68{~P~1{=WzG3J4C61tbS#1{4L9 z2Mh_&2Q&mU28;=q5wIYjE#R$yg8_#Fjs_eLI01^ZQ=nI1SYSk8RA3CK)bW7{fk}Z` zfklB8ft8?O*96uF>H>{{PX#Urd?WC^z+Hj613w7-D)36+)xc|kKL>dPNrJ+HB7&lV zl7kdM%AoY1f}oVRj zf-{2Eps2qTycLx76Tw%5Z-#`0M2A#`3=0_U34J&8lhDJVXG710UI_g<^vBTap|`?Z z!UDpQ!sKBoVX0whVHshWVcB7-u-ve`upwc?!bXJEg=xa-!*pQ{VTQ1=Va;Ktu(@Fy z!afiCDcmbu89pMM4_^_!Gkjn8r{SN4e;$4!{CxPu@Jr#}hJP3SL->#3x5Mv*-wnSP z(K|vM;U3``;TI7Q5d=nxJ`oua>WI9Ef{5aXs)(8hO@uz8F=9-FDPmlNC89NAO2nLq zw%NT0~S$dt&O$dbsi$co6y$g0R;ks~7OA~liqk-A7@S)y2 zsBfcwiMko}Th!gCd(lL+XLM+EN_1*;T69KqW^{J6DmphhFS;OlNc6Di5z(Wf>!bD2 zhUlhfQ?xnS8vSJS+UU*E`=js2xWy#IsA7i2G{%^~2xEz9jhPxVBj%Bq$6{v3Y>D|M zRuU_XO^r>D&5Z3An;TmiTM;`TwkCE^?2uS}Y-8-0*ygxiaXxW=aRG6`aR=f~$9)<1 zRosO>3;V3-)81!QpEdE7@gw3##@EGbz;t7ZZ;3a@&xq&Z`S?fUpNXFzzaakE__p}B z;eV~w71k*>MC`Y z9+IAwo|9gXUP|bbkd}~l#`@RDoC1>^nB9dq$Nqqk}f6vEMsInWW8lBGB=s0%tz)g3zA7>$+A>gnk++> zDeEW8mF3F{!H`rYGsqs7y&^jx`$g_8&yWw1Pn7fWney54C*%vjxU@{(CSN6ABVQ-q zAb(Z9MZQPAPyUJgGx=fpQTZ40lk&^*ALKvEZ_Do|qhva{XL9dkmt=8rNOF8~PI6vy zVRA`wd2(fPb@IUEA<4s&>yoX>6Otz-Pf4Bz2CGMsA4{H{{6zBH>}CdCxR{lF698?@u z98;W7oKl=oe5E+AxR)A~nv+_e`b6r6)X!6|DxHAIwzA1fk`quQ1(mzf=oPIR@ zeEK)(m(zbpzn1=U`mgCXGuRA|jF^l*83`G(jFb#zMn*oEi>b@WLJ<#`1-=lqx_x-Bx<-R}k zz1sJuzQ6Rn(f3y0+nJ(Fr%abjw@mL$-^_r_pv?Hp#LUdhoJ@6QL1t-Yd1hs1Ri-A> zn8|0(%$%J$C-bSyXEGONF3Mb-xioWQ=BCWIGPh)I%X}yEz06&iyE8w`+?)Az7L^s9 zRh(tYnxC~f>uA>Xth-tFv&n2a+d11i+c(=kJ1{#KjFHl8d3H*+GCMOnJ3A*^on4h( zm#xj#XB)DO*)7?Y?AGj=+4HkkXRphCC3|D`rtHnx+p^!uelPp|><_X}W}nGEn|&_( zLiVNX%h}&&U&+3j{Zsb!e&T+K{i^%5_FLTVoqp$4j4DE?Cm~0cQ;<`fQ<_tr(?4fGPEF3BoFO^Gaz^Hi z%9)n4G-p@Ng z*W6pVzvtdplWJP+q4rjXsN>Z#b+S5D-B+EZR;hE<1JoncD3#0|b1tSU`Em&HxuHf~8Hw(5D zY%kbVu&3aof{zP6EjU&1W1&l-PobnRyfCUT28_rVg;|BF!u-Ob!qUR>!s)S~G{ zPZTXGT3ocWXn9e4(W;_dMIRR(FS=OtP0@EnSBm~o^mEa##bhy4+@rX6u}iUAu}862 zv7|V@xS+VXcy{rN#Vd;s6n{~CrueJk3&md-|D*VJiKwJUNzanrC7varB@rdjC2=Lv zlEjj%5_L&sNqvdF#8A>yVk$A0w3bXPnNl*nWPZuBC5uX4C|OdntfZ}ERmqx?btM~0 zHka%wIazY0lq&Ttm6qn0jx4p7&MMtodZ6@J>ABJ$OMfZ7S$ezl_cFRnRMxA^xy-dJ zw`@e&__7&gbIP77d!}q**`l(=WlPG|mTfHCRJOTnTiMRC-DMw^?JN7F?0R`f3^Ir@~!1>m%m%SvwUCq zr{#yr&z4^*zg+%9`PK4Y%Wsw6DZf`iRER3X+8x^Ww4Z8EXisa;YR_xG)_$w~UVBq} zTYFb~Uq|X_9joi1lj^E;Q+2C#8+BWCyL5YW`*lZjCv-pPe$?I2{ieI4`(58l@2q## zyX(F5K6;5hTpy{A)+gy@`ec2ket^DOKTtnJKU`m@AFbEv8}(!LMtzHZntq0!*U!`+ z(x26z(_heEYA9|P*f6+ZXv2txwuaXlUT@gcu({E-F|aYXQPLRRSk^eCaaiMs#!&_@ aLzp4L5M_uJ>~bV2{1=VwW~U + + + + + + + + diff --git a/Tipsy.xcodeproj/xcuserdata/tphan.xcuserdatad/xcschemes/xcschememanagement.plist b/Tipsy.xcodeproj/xcuserdata/tphan.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..eec1f1d --- /dev/null +++ b/Tipsy.xcodeproj/xcuserdata/tphan.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + Tipsy.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/Tipsy/Base.lproj/Main.storyboard b/Tipsy/Base.lproj/Main.storyboard index 938fe27..b59d91e 100644 --- a/Tipsy/Base.lproj/Main.storyboard +++ b/Tipsy/Base.lproj/Main.storyboard @@ -1,27 +1,28 @@ - + + - + - + - + - + - + - + - + @@ -72,7 +82,7 @@ - + @@ -122,10 +135,10 @@ - + - + @@ -152,7 +165,7 @@ @@ -181,24 +197,31 @@ + + + + + + + - + - + - + - + @@ -214,7 +215,7 @@ - + @@ -251,7 +252,7 @@ + - + + + + + + + + + + + + + + + + + + + diff --git a/Tipsy/CalculatorViewController.swift b/Tipsy/CalculatorViewController.swift index 02ff832..a7b20e3 100644 --- a/Tipsy/CalculatorViewController.swift +++ b/Tipsy/CalculatorViewController.swift @@ -77,11 +77,7 @@ class CalculatorViewController: UIViewController { self.performSegue(withIdentifier: "goToResult", sender: self) } - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - if segue.identifier == "goToResult" { - let destinationVC = segue.destination as! ResultsViewController - destinationVC. - } - } + } + } diff --git a/Tipsy/Controllers/ResultsViewController.swift b/Tipsy/Controllers/ResultsViewController.swift index 0a929c2..bcfbb12 100644 --- a/Tipsy/Controllers/ResultsViewController.swift +++ b/Tipsy/Controllers/ResultsViewController.swift @@ -18,5 +18,7 @@ class ResultsViewController: UIViewController { } @IBAction func recalculatePressed(_ sender: Any) { + + dismiss(animated: true, completion: nil) } } From c1ee1742f7c2ab599ad80ed3b4880a60479d4dff Mon Sep 17 00:00:00 2001 From: Tam Phan Date: Mon, 20 Apr 2020 06:52:23 -1000 Subject: [PATCH 6/6] finished app --- .../UserInterfaceState.xcuserstate | Bin 34214 -> 41058 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 38 ++++++++++++++++-- Tipsy/Base.lproj/Main.storyboard | 8 +++- Tipsy/CalculatorViewController.swift | 36 ++++++++++++----- Tipsy/Controllers/ResultsViewController.swift | 8 ++++ 5 files changed, 76 insertions(+), 14 deletions(-) diff --git a/Tipsy.xcodeproj/project.xcworkspace/xcuserdata/tphan.xcuserdatad/UserInterfaceState.xcuserstate b/Tipsy.xcodeproj/project.xcworkspace/xcuserdata/tphan.xcuserdatad/UserInterfaceState.xcuserstate index 2a67b69475be76cb38297fdc501c862844b4e6a4..72fad110c10f0e9f64d55e21d70352effe5c1637 100644 GIT binary patch delta 19015 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 UfBYXQ89o@L8UF45IepFl0Hk4&(EtDd delta 14251 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 + + + + + + + + diff --git a/Tipsy/Base.lproj/Main.storyboard b/Tipsy/Base.lproj/Main.storyboard index b92d25f..c4bc75a 100644 --- a/Tipsy/Base.lproj/Main.storyboard +++ b/Tipsy/Base.lproj/Main.storyboard @@ -180,7 +180,6 @@ - @@ -205,11 +204,12 @@ + - + @@ -294,6 +294,10 @@ + + + + diff --git a/Tipsy/CalculatorViewController.swift b/Tipsy/CalculatorViewController.swift index a7b20e3..25fe7be 100644 --- a/Tipsy/CalculatorViewController.swift +++ b/Tipsy/CalculatorViewController.swift @@ -17,8 +17,16 @@ class CalculatorViewController: UIViewController { @IBOutlet weak var splitNumberLabel: UILabel! var tip = 0.10 - var numberOfPeople: Int = 0 + var numberOfPeople: Int = 2 + var numberOfPeopleAsString: String = "" var billTotal = 0.0 + var resultTo2DecimalPlace: String = "" + var buttonTitle: String = "" + + override func touchesBegan(_ touches: Set, with event: UIEvent?) { + view.endEditing(true) + } + @IBAction func tipChanged(_ sender: UIButton) { zeroPctButton.isSelected = false @@ -29,7 +37,7 @@ class CalculatorViewController: UIViewController { sender.isSelected = true // Grab button title. - let buttonTitle = sender.currentTitle! + buttonTitle = sender.currentTitle! // Remove % sign from the end of button title that was grabbed. let buttonTitleMinusPercentSign = String(buttonTitle.dropLast()) @@ -45,6 +53,7 @@ class CalculatorViewController: UIViewController { @IBAction func stepperValueChanged(_ sender: UIStepper) { // Update var splitValue to label. + numberOfPeopleAsString = String(sender.value) numberOfPeople = Int(sender.value) // Update bill split number label. @@ -53,11 +62,6 @@ class CalculatorViewController: UIViewController { } @IBAction func calculatePressed(_ sender: UIButton) { - print(tip) - print(numberOfPeople) - - // Get text from billTextField. This did not work. - // billTotal = Double(billTextField.text?) // Storing user inputted string from billTextField into a new constant. let bill = billTextField.text! @@ -72,11 +76,25 @@ class CalculatorViewController: UIViewController { let result = billTotal * (1 + tip) / Double(numberOfPeople) // Convert double to string and format to 2 decimal places - let resultTo2DecimalPlace = String(format: "%.2f", result) + resultTo2DecimalPlace = String(format: "%.2f", result) - self.performSegue(withIdentifier: "goToResult", sender: self) } + //JUSTIN + performSegue(withIdentifier: "resultsSegue", sender: nil) + } + + //JUSTIN + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + if segue.identifier == "resultsSegue" { + + // Pass the values to ResultsViewController via Segue + let destinationVC = segue.destination as! ResultsViewController + print(self.resultTo2DecimalPlace) + destinationVC.billTotalIncludingTip = self.resultTo2DecimalPlace + destinationVC.numberOfPeopleResult = numberOfPeopleAsString + destinationVC.percentTipResult = buttonTitle + } } } diff --git a/Tipsy/Controllers/ResultsViewController.swift b/Tipsy/Controllers/ResultsViewController.swift index bcfbb12..766a214 100644 --- a/Tipsy/Controllers/ResultsViewController.swift +++ b/Tipsy/Controllers/ResultsViewController.swift @@ -13,8 +13,16 @@ class ResultsViewController: UIViewController { @IBOutlet weak var totalLabel: UILabel! @IBOutlet weak var settingsLabel: UILabel! + var billTotalIncludingTip: String? + var numberOfPeopleResult: String? + var percentTipResult: String? + override func viewDidLoad() { super.viewDidLoad() + + // Test -- If nil, print PooP + totalLabel.text = billTotalIncludingTip ?? "PooP" + settingsLabel.text = "Split between \(numberOfPeopleResult!) people, with \(percentTipResult!) tip." } @IBAction func recalculatePressed(_ sender: Any) {