1 00:00:00,000 --> 00:00:07,880 2 00:00:07,880 --> 00:00:09,800 >> RHED SHI: Welkom bij zie CS50 seminar - 3 00:00:09,800 --> 00:00:11,630 Introduction to iOS. 4 00:00:11,630 --> 00:00:13,290 Ik dank u allen voor uw komst. 5 00:00:13,290 --> 00:00:16,610 Ik hoop dat je net zo enthousiast als ik over iOS. 6 00:00:16,610 --> 00:00:22,300 Vorig jaar nam ik CS50 als tweedejaarsstudent, en ik eigenlijk geleerd iOS voor mijn 7 00:00:22,300 --> 00:00:23,490 afstudeerproject. 8 00:00:23,490 --> 00:00:26,350 En het was behoorlijk - 9 00:00:26,350 --> 00:00:30,530 goed, het was niet makkelijk, maar er zijn veel steun tutorials online. 10 00:00:30,530 --> 00:00:33,760 En ik hoop echt dat met deze seminar, ik geef je jongens een hoofd 11 00:00:33,760 --> 00:00:36,750 start op iOS ontwikkeling 12 00:00:36,750 --> 00:00:40,490 >> Dus in termen van IOS ontwikkeling, zijn er twee belangrijke dingen die we 13 00:00:40,490 --> 00:00:42,090 vandaag willen dekken. 14 00:00:42,090 --> 00:00:43,290 Ten eerste, de taal - 15 00:00:43,290 --> 00:00:46,650 de taal gaat worden in Objective-C. We zullen eigenlijk horen 16 00:00:46,650 --> 00:00:47,750 iets echt spannend. 17 00:00:47,750 --> 00:00:51,500 Dus, kun je lid worden van de hele Apple gemeenschap van ontwikkelaars en bouwen een aantal 18 00:00:51,500 --> 00:00:52,940 echt geweldig apps. 19 00:00:52,940 --> 00:00:58,670 >> Ook iOS 7 is mooi, hopelijk, voor sommigen van u. 20 00:00:58,670 --> 00:01:01,130 Maar het is controversieel, ik weet het. 21 00:01:01,130 --> 00:01:05,349 En vooral, wat ik wil doen is gids je door Objective-C, en ook 22 00:01:05,349 --> 00:01:10,650 Xcode, de geïntegreerde ontwikkelomgeving dat je in 23 00:01:10,650 --> 00:01:13,460 werken in voor iOS. 24 00:01:13,460 --> 00:01:19,140 >> En dus, maar een woord over Objective-C. Kortom, het is exact dezelfde als C, 25 00:01:19,140 --> 00:01:22,790 maar met een heleboel andere dingen. 26 00:01:22,790 --> 00:01:27,710 En zo, strenger, het is eigenlijk een super set van C. Dus alles wat je 27 00:01:27,710 --> 00:01:32,280 kan doen in C op dit moment, dat is eigenlijk graag PSET 0 tot en met 6, je 28 00:01:32,280 --> 00:01:34,170 kan doen in Objective-C. 29 00:01:34,170 --> 00:01:38,620 >> Dus, voel je niet bang voor deze nieuwe taal die je gaat om te leren. 30 00:01:38,620 --> 00:01:42,120 Je hebt al gedekt er veel van, want je hebt alles gedaan C afgelopen 31 00:01:42,120 --> 00:01:45,880 semester, behalve nu je gaat veel meer om mee te werken. 32 00:01:45,880 --> 00:01:49,270 En ik ga gewoon om u te leiden door middel van een enkele voorbeelden om wat te markeren 33 00:01:49,270 --> 00:01:53,920 van de belangrijkste verschillen die ik vond waren echt belangrijk toen ik hoorde 34 00:01:53,920 --> 00:01:57,180 Objective-C vorig jaar. 35 00:01:57,180 --> 00:02:00,910 >> Nou eigenlijk, ja, het andere punt is, Objective-C is uiteraard 36 00:02:00,910 --> 00:02:02,200 object-georiënteerde. 37 00:02:02,200 --> 00:02:06,340 En we zullen een beetje bespreken over wat dat later betekent. 38 00:02:06,340 --> 00:02:11,340 Kortom, het is net hoe je gewerkt met structs in deze afgelopen PSET, met 39 00:02:11,340 --> 00:02:13,360 knooppunten en soortgelijke andere dat soort dingen. 40 00:02:13,360 --> 00:02:17,110 Behalve, in Objective-C, alles is een object, en je gaat worden 41 00:02:17,110 --> 00:02:20,720 passeren rond verwijzingen naar objecten dan de waarden zelf. 42 00:02:20,720 --> 00:02:25,050 Dus, het is gewoon iets belangrijks in gedachten te houden. 43 00:02:25,050 --> 00:02:29,140 >> Dus, waarom beginnen we niet met een paar verschillen in syntax tussen C en 44 00:02:29,140 --> 00:02:30,540 Objective-C? 45 00:02:30,540 --> 00:02:38,310 Ik wil de # markeren, kunt Weet standaard io.H in C en C + +, met 46 00:02:38,310 --> 00:02:44,030 de Objective-C-versie van dat, wat is # import, en dan een soort van 47 00:02:44,030 --> 00:02:44,790 header file. 48 00:02:44,790 --> 00:02:48,165 In dit geval zou het UIKit zijn, je weet wel, slash UIKit.h. 49 00:02:48,165 --> 00:02:53,560 Het kan ook zijn, je weet wel, MKMapView om je in te hakken MKMapview.h als je wilt 50 00:02:53,560 --> 00:02:56,370 te doen, zoals een kaart binnenkant van je app. 51 00:02:56,370 --> 00:02:57,110 Soortgelijke dingen als dat. 52 00:02:57,110 --> 00:03:01,250 >> Dus, het belangrijkste is onder andere is nu veranderd te importeren. 53 00:03:01,250 --> 00:03:04,340 Maar het idee blijft. 54 00:03:04,340 --> 00:03:10,460 Je gaat importeren een soort van header-bestand in uw programma. 55 00:03:10,460 --> 00:03:14,550 >> Ik wil ook het verschil te benadrukken tussen printf en NSLog. 56 00:03:14,550 --> 00:03:19,760 Maar, zoals we al eerder zeiden, Objective-C is een strikte super-set van 57 00:03:19,760 --> 00:03:22,800 C, waardoor printf bestaat in Objective-C, ook. 58 00:03:22,800 --> 00:03:24,340 Maar, de meeste mensen niet dat gebruiken. 59 00:03:24,340 --> 00:03:28,245 De meeste mensen gebruiken dit NSLog omdat het geeft u een tijdstempel, en we zullen zien 60 00:03:28,245 --> 00:03:29,780 in latere actie. 61 00:03:29,780 --> 00:03:33,560 Maar, het is over het algemeen een meer bruikbaar manier om uit te printen variabelen. 62 00:03:33,560 --> 00:03:38,220 >> En ik wil ook benadrukken dat NSLog neemt op precies dezelfde 63 00:03:38,220 --> 00:03:41,650 placeholder waarden als printf doet - 64 00:03:41,650 --> 00:03:45,900 dus% d is voor een int, % F is voor een vlotter. 65 00:03:45,900 --> 00:03:49,750 Maar ik wil benadrukken deze allerlaatste - 66 00:03:49,750 --> 00:03:52,960 NSLog% at-teken - 67 00:03:52,960 --> 00:03:55,390 dat is een tijdelijke aanduiding voor een object. 68 00:03:55,390 --> 00:04:01,160 En zoals ik al eerder zei, Objective-C voor vrij veel meestal in objecten, 69 00:04:01,160 --> 00:04:05,020 en zo zal deze in gebruik komen wanneer u wilt afdrukken, misschien, misschien een 70 00:04:05,020 --> 00:04:08,390 NSArray of NSDictionary, of een NSString. 71 00:04:08,390 --> 00:04:13,750 >> Dus, ook merken dat, in onze NSLog verklaring, hebben we een aan-teken voor 72 00:04:13,750 --> 00:04:15,380 van de offerte - 73 00:04:15,380 --> 00:04:20,769 dat wil zeggen dat de snaren betekenen, nu, in Objective-C zijn objecten. 74 00:04:20,769 --> 00:04:23,310 Ze zijn niet langer alleen char sterren. 75 00:04:23,310 --> 00:04:25,530 Ze zijn objecten en zijn als zodanig behandeld. 76 00:04:25,530 --> 00:04:28,690 >> Dus, het is echt belangrijk dat wanneer je NSLog gebruiken duurt het in een NS 77 00:04:28,690 --> 00:04:32,580 snaar, wat betekent dat je zult moeten een op te nemen in de voorkant van uw 78 00:04:32,580 --> 00:04:34,270 aanhalingstekens. 79 00:04:34,270 --> 00:04:38,290 En daarom zie je, hier, in alle mijn functie oproepen op dit NSLog, ik 80 00:04:38,290 --> 00:04:42,400 een aan voor de aanhalingstekens, zelfs hoewel de% d en% f's zijn 81 00:04:42,400 --> 00:04:45,200 allemaal hetzelfde uit C. 82 00:04:45,200 --> 00:04:47,930 >> Eventuele vragen tot nu toe? 83 00:04:47,930 --> 00:04:50,920 Ik zal proberen om te gaan door dit snel dus dat we meer tijd om te werken kan hebben 84 00:04:50,920 --> 00:04:55,210 met Xcode en Objective-C, dus dat jullie meer kunt krijgen 85 00:04:55,210 --> 00:04:57,630 vertrouwd mee. 86 00:04:57,630 --> 00:05:01,900 >> Vervolgens wil ik iets markeren conceptueel belangrijk. 87 00:05:01,900 --> 00:05:05,130 Dus, C meeste dingen functies. 88 00:05:05,130 --> 00:05:06,280 We maken een functie aan te roepen. 89 00:05:06,280 --> 00:05:10,190 Wij verklaren functies op deze manier, met de terugkeer typt eerst, dan de 90 00:05:10,190 --> 00:05:13,570 functienaam, haakjes, en dan ongeacht argumenten en het soort 91 00:05:13,570 --> 00:05:15,590 deze argumenten willen we passeren inch 92 00:05:15,590 --> 00:05:19,970 En Objective-C, omdat alles is een object of klasse - 93 00:05:19,970 --> 00:05:23,970 dus klasse en object zijn twee termen die meestal synoniem met elkaar, 94 00:05:23,970 --> 00:05:28,270 dus ik kan zijn uitwisselbaar gedurende het seminar. 95 00:05:28,270 --> 00:05:34,090 >> Maar, zult u zien dat we methoden in Objective-C plaats functies. 96 00:05:34,090 --> 00:05:36,390 En methoden behoren tot objecten. 97 00:05:36,390 --> 00:05:38,950 Dus gewoon zo, misschien wel bijvoorbeeld, knoop - 98 00:05:38,950 --> 00:05:40,250 ons type [onverstaanbaar] 99 00:05:40,250 --> 00:05:44,390 knooppunt van PSET 6 of 5 - 100 00:05:44,390 --> 00:05:49,590 we hebben het woord, eigendom, of het volgende knooppunt aanwijzer. 101 00:05:49,590 --> 00:05:53,880 Methoden zijn gewoon functies binnen van een soort van structuur. 102 00:05:53,880 --> 00:05:57,510 >> Dus, in dit geval, zou de structuur het object, en dan is de methode 103 00:05:57,510 --> 00:05:59,260 iets dat van een object. 104 00:05:59,260 --> 00:06:02,650 En dit is hoe je zou verklaren, soort, een methode. 105 00:06:02,650 --> 00:06:07,990 Je zou beginnen met, opnieuw, de terugkeer soort - dus, heb ik geprobeerd om kleur 106 00:06:07,990 --> 00:06:12,990 coderen de sleutelwoorden, zodat jullie kan het, op zijn minst, opmaak zien 107 00:06:12,990 --> 00:06:17,650 gelijkenissen tussen functie verklaringen en methode verklaringen. 108 00:06:17,650 --> 00:06:21,990 Dus, begin je met, je weet wel, een terugkeer Type - in dit geval is een array of 109 00:06:21,990 --> 00:06:23,910 een NSArray pointer - 110 00:06:23,910 --> 00:06:26,710 en dan heb je deze methode. 111 00:06:26,710 --> 00:06:30,900 En dan, wat interessant is hier dat in plaats van haakjes, we 112 00:06:30,900 --> 00:06:32,900 zijn deze dubbele punten. 113 00:06:32,900 --> 00:06:38,450 En dan, in de voorkant van onze argumenten, we gezet, weer haakjes het type 114 00:06:38,450 --> 00:06:39,370 van ons betoog. 115 00:06:39,370 --> 00:06:43,160 >> Zo, nu ben ik probeer te maken de vergelijking tussen, je weet wel, n en 116 00:06:43,160 --> 00:06:45,450 nummer, omdat ze zowel als ints. 117 00:06:45,450 --> 00:06:49,580 En dan, de andere is een NSUInteger type. 118 00:06:49,580 --> 00:06:56,390 En dan, met Objective-C, wanneer u wilt meerdere argumenten hebben in 119 00:06:56,390 --> 00:07:00,030 uw methode clausule, u, soort van, scheiden ze uit dit soort zoals - 120 00:07:00,030 --> 00:07:03,790 Ik ben niet helemaal zeker hoe het te beschrijven, maar dit is een goed voorbeeld van hoe je 121 00:07:03,790 --> 00:07:06,530 kan meerdere argumenten hebben daar. 122 00:07:06,530 --> 00:07:10,360 >> Je zou natuurlijk gewoon helemaal negeren de andArray colon NSArray 123 00:07:10,360 --> 00:07:13,240 matrix als je gewoon een methode wilde dat neemt in een argument. 124 00:07:13,240 --> 00:07:13,677 Ja, vraag. 125 00:07:13,677 --> 00:07:18,701 >> Publiek: Zijn beide NSUInteger en NSArray argumenten die kunnen worden genomen in 126 00:07:18,701 --> 00:07:21,530 binnen de NSArray? 127 00:07:21,530 --> 00:07:22,060 >> RHED SHI: Ja. 128 00:07:22,060 --> 00:07:23,400 Dus, laat het me uitleggen. 129 00:07:23,400 --> 00:07:23,790 Dus, ja. 130 00:07:23,790 --> 00:07:30,260 Dus, de vraag was zijn NSUInteger en NSArray * typen van de argumenten, 131 00:07:30,260 --> 00:07:31,570 en dat klopt. 132 00:07:31,570 --> 00:07:35,700 Dus, wil je altijd wat te specificeren het type van uw argument is. 133 00:07:35,700 --> 00:07:41,570 En hier, ik probeer u voorstellen om een ​​deel van de syntax en vocab van 134 00:07:41,570 --> 00:07:45,910 Objective-C, dus die zijn werkelijke types dat je te maken krijgt met. 135 00:07:45,910 --> 00:07:48,970 >> En zoals u zult merken, arrays zijn niet meer, soort, 136 00:07:48,970 --> 00:07:50,780 eenvoudige beugel dingen. 137 00:07:50,780 --> 00:07:52,060 Ze zijn objecten. 138 00:07:52,060 --> 00:07:56,700 Hoewel, als we naar het volgende glijbaan, kunnen we zien dat we kunnen 139 00:07:56,700 --> 00:08:02,510 hard-code een NSArray in Objective-C met gewoon een op symbool voor 140 00:08:02,510 --> 00:08:04,190 de beugels. 141 00:08:04,190 --> 00:08:08,650 Ik ben niet, eigenlijk, helemaal zeker van of Ik syntactisch hard-coded een array 142 00:08:08,650 --> 00:08:16,020 juist voor de C-versie, maar dat is hoort in een C array. 143 00:08:16,020 --> 00:08:19,760 >> Dus, dit is hoe je zou, weet je, misschien gebruik maken van de functies of de 144 00:08:19,760 --> 00:08:21,990 methoden die we eerder gemaakt. 145 00:08:21,990 --> 00:08:22,250 Rechts? 146 00:08:22,250 --> 00:08:25,340 Dus, dit is waar we verklaren ons functie en onze methode. 147 00:08:25,340 --> 00:08:28,020 En nu willen we ze te gebruiken in ons programma, en dit is 148 00:08:28,020 --> 00:08:29,450 hoe wij het zouden doen. 149 00:08:29,450 --> 00:08:32,400 Dus, in C, zou je, je weet wel, misschien, een bool b en u instellen dat 150 00:08:32,400 --> 00:08:36,549 gelijk zijn aan de functie, en vervolgens u passeert in de argumenten. 151 00:08:36,549 --> 00:08:39,190 >> In Objective-C, is het vrij veel het zelfde ding. 152 00:08:39,190 --> 00:08:43,370 Je hebt NSArray * my_array, en het is ga gelijk - nu, de enige 153 00:08:43,370 --> 00:08:47,460 verschil hier is dit object ding, die ik heb geel gemarkeerd, en 154 00:08:47,460 --> 00:08:51,180 zoals je kunt zien, in C, is er geen andere gele woord. 155 00:08:51,180 --> 00:08:54,170 En het is omdat methoden behoren met een bepaald object. 156 00:08:54,170 --> 00:08:59,800 Dus dat is de reden waarom ik een object moet hebben dat, soort, noemt deze methode op 157 00:08:59,800 --> 00:09:04,360 het getal nul, en vervolgens de NSArray a, b, c, d. 158 00:09:04,360 --> 00:09:05,350 Heeft u vragen over zeggen? 159 00:09:05,350 --> 00:09:12,190 >> We zullen deze begrippen in actie te zien vrij snel als we het gaan in een demo. 160 00:09:12,190 --> 00:09:13,400 OK. 161 00:09:13,400 --> 00:09:17,170 Nu wil ik een beetje kort praten Xcode ongeveer 5, de 162 00:09:17,170 --> 00:09:21,160 geïntegreerde ontwikkelomgeving dat je zult werken met. 163 00:09:21,160 --> 00:09:26,160 Ik weet dat veel van jullie, of sommigen van u, niet Macs, wat een probleem 164 00:09:26,160 --> 00:09:30,490 omdat Xcode is niet beschikbaar voor Windows en PC. 165 00:09:30,490 --> 00:09:32,785 Vraag me niet waarom, maar waarschijnlijk - 166 00:09:32,785 --> 00:09:33,730 ja, corporate. 167 00:09:33,730 --> 00:09:35,290 Whatever. 168 00:09:35,290 --> 00:09:39,360 Maar toch, dus, ik verontschuldig me als sommige van je moet wel een soort van downloaden 169 00:09:39,360 --> 00:09:43,000 virtuele machine voor Mac Om Xcode 5 draaien. 170 00:09:43,000 --> 00:09:46,460 Maar het is een tamelijk sjiek software te gebruiken. 171 00:09:46,460 --> 00:09:51,280 >> En dus, voordat we een duik in een soort demo, ik wil je alleen een toon 172 00:09:51,280 --> 00:09:55,700 beeld van wat Xcode eruit ziet in uw venster, en dan ook praten over 173 00:09:55,700 --> 00:09:57,670 wat deze hele ruimte is. 174 00:09:57,670 --> 00:10:01,600 Dus, het is net zoiets als het leren hoe te gebruik van Microsoft Word, behalve dat u wilt 175 00:10:01,600 --> 00:10:04,675 vertrouwd gemaakt met alle verschillende dingen die 176 00:10:04,675 --> 00:10:06,250 zijn hier aan de hand. 177 00:10:06,250 --> 00:10:11,160 >> Dus eerst, wil ik je wijzen aan de werkbalk bovenaan. 178 00:10:11,160 --> 00:10:14,450 Je zult zien dat, aan de top, zult u de bestandsnaam hebben - 179 00:10:14,450 --> 00:10:18,100 of, eigenlijk, je project naam en dan de bestandsnaam. 180 00:10:18,100 --> 00:10:20,940 Kennis te nemen van het spel en de stop knoppen. 181 00:10:20,940 --> 00:10:24,210 Dat zijn degenen die je in gebruiken om uw app draaien op de 182 00:10:24,210 --> 00:10:25,600 simulator - 183 00:10:25,600 --> 00:10:26,550 de iOS-simulator. 184 00:10:26,550 --> 00:10:29,940 Dit komt automatisch met Xcode 5, zodat u zich geen zorgen te maken over 185 00:10:29,940 --> 00:10:32,070 downloaden van een soort van simulator. 186 00:10:32,070 --> 00:10:34,700 Je drukt gewoon spelen en dan loopt uw ​​app. 187 00:10:34,700 --> 00:10:39,230 En je kunt spelen met je, en je zult zien hoe het later werkt. 188 00:10:39,230 --> 00:10:42,690 >> En vervolgens in het midden, is natuurlijk waar al uw mooie code is 189 00:10:42,690 --> 00:10:44,240 ga. 190 00:10:44,240 --> 00:10:48,340 En dan, op de linkerzijde, zult u hebben dit, soort, map - 191 00:10:48,340 --> 00:10:50,340 navigatie - 192 00:10:50,340 --> 00:10:53,970 en dan zul je ook zien dat, samen met het mappictogram, zijn er een 193 00:10:53,970 --> 00:10:57,680 boel andere iconen er die later nuttig zijn. 194 00:10:57,680 --> 00:11:04,710 >> En dan, aan de rechterkant is een hulpprogramma gebied waar u kunt werken met 195 00:11:04,710 --> 00:11:09,620 sommige objecten en geef je weten wat de kleur hebben, welke 196 00:11:09,620 --> 00:11:12,040 Het lettertype moet zijn, et cetera. 197 00:11:12,040 --> 00:11:15,890 Hoewel, alles wat je doet in de bijkeuken, kunt u 198 00:11:15,890 --> 00:11:17,480 doen in de code ook. 199 00:11:17,480 --> 00:11:21,630 En dus, zal ik gaan door twee voorbeelden van het gebruik, eenvoudig, geen code op 200 00:11:21,630 --> 00:11:23,730 alle - of zeer minimale code - 201 00:11:23,730 --> 00:11:28,290 verzen alle code, gewoon zo dat jullie weet wat je wel en niet kan doen in 202 00:11:28,290 --> 00:11:29,260 Xcode en Objective-C. 203 00:11:29,260 --> 00:11:32,770 >> En tenslotte op de bodem, heb je de debug omgeving. 204 00:11:32,770 --> 00:11:37,270 Dus, u niet langer hoeft te GDB lopen, et cetera, op uw programma's. 205 00:11:37,270 --> 00:11:39,180 Het doet dit automatisch voor u. 206 00:11:39,180 --> 00:11:42,880 En u kunt ook afdrukken dingen naar dit gebied. 207 00:11:42,880 --> 00:11:46,790 Dus eigenlijk, later, we gaan door mario.c, als jullie nog herinneren 208 00:11:46,790 --> 00:11:49,000 dat, in Xcode. 209 00:11:49,000 --> 00:11:50,360 Dus dat zou leuk zijn. 210 00:11:50,360 --> 00:11:55,870 >> En dan, alleen maar om het terug te brengen Objective-C, wil ik benadrukken wat 211 00:11:55,870 --> 00:11:57,440 je kunt doen met if statements. 212 00:11:57,440 --> 00:12:03,160 Dus, weet je, want Objective-C is een superset van C, alles wat je doet, 213 00:12:03,160 --> 00:12:06,890 letterlijk, hetzelfde als C. U gewoon kleine verschillen. 214 00:12:06,890 --> 00:12:10,810 Zo, zult u het formulier merken voor een if verklaring is nog steeds hetzelfde - je hebt 215 00:12:10,810 --> 00:12:14,280 indien, en dan heb je tussen haakjes met een voorwaarde binnenkant van, en dan 216 00:12:14,280 --> 00:12:17,150 accolades voor wat u wilt doen binnenkant van daar. 217 00:12:17,150 --> 00:12:21,680 >> Toch wilde ik deze dia zetten hier, alleen om te illustreren dat, 218 00:12:21,680 --> 00:12:25,680 omdat we te maken hebben met objecten nu, we zullen moeten deze dingen te gebruiken 219 00:12:25,680 --> 00:12:31,240 zo genoemd, is gelijk aan touwtjes, omdat is toevallig een werkwijze van 220 00:12:31,240 --> 00:12:33,710 koord of een NSString object. 221 00:12:33,710 --> 00:12:38,600 Zo word in dit geval, een NSString object, en het heeft een methode genaamd is 222 00:12:38,600 --> 00:12:44,150 gelijk aan touwtje, en dan zijn we passeren in een hard-coded string zien 223 00:12:44,150 --> 00:12:48,110 of die gelijk zijn elkaar. 224 00:12:48,110 --> 00:12:51,580 >> Eventuele vragen tot nu toe? 225 00:12:51,580 --> 00:12:52,440 OK. 226 00:12:52,440 --> 00:12:56,190 En, ik wil gaan over een voor de verklaring ook. 227 00:12:56,190 --> 00:13:01,420 >> Dus, bijvoorbeeld, als we wilden lus over de lengte van een string C, deze 228 00:13:01,420 --> 00:13:03,710 u bekend moet zijn. 229 00:13:03,710 --> 00:13:07,840 En, in Objective-C, wil ik om deze te markeren, soort, 230 00:13:07,840 --> 00:13:09,235 methode genaamd telling. 231 00:13:09,235 --> 00:13:13,260 232 00:13:13,260 --> 00:13:15,550 Nou, laat me neem dat terug. 233 00:13:15,550 --> 00:13:17,200 Telling is een methode array. 234 00:13:17,200 --> 00:13:21,070 Echter, het is meer in het bijzonder een eigendom van de array, dat is waarom je 235 00:13:21,070 --> 00:13:22,380 kan de dot-notatie te gebruiken. 236 00:13:22,380 --> 00:13:25,870 Maar ik wil niet te krijgen in te veel van dit conceptuele spul, ik wil gewoon 237 00:13:25,870 --> 00:13:30,140 om te laten zien hoe de dingen eruit zou zien zoals in Objective-C versus C. 238 00:13:30,140 --> 00:13:35,400 >> En ook, ik wil erop wijzen dat hoewel ik heb gebruikt NSUInteger 239 00:13:35,400 --> 00:13:39,860 voor al mijn i's in Objective-C, U kunt ook gebruik maken van int, omdat int is 240 00:13:39,860 --> 00:13:42,290 volledig geldig in Objective-C, ook. 241 00:13:42,290 --> 00:13:42,475 Ja? 242 00:13:42,475 --> 00:13:44,350 >> PUBLIEK: Is het gewoon stilistische, of is - 243 00:13:44,350 --> 00:13:44,760 >> RHED SHI: Yeah. 244 00:13:44,760 --> 00:13:46,060 Dus, zoals u zult zien - 245 00:13:46,060 --> 00:13:49,390 Dus, de vraag was is dat gewoon een kwestie van stijl. 246 00:13:49,390 --> 00:13:54,820 Zoals je zult zien, ik heb een, soort van, ster sterretje ding naar beneden op de bodem, en 247 00:13:54,820 --> 00:13:59,870 die link brengt u naar een stack overflow vormen, waar iemand uitlegt 248 00:13:59,870 --> 00:14:03,640 het verschil tussen een int in NSInteger en een NSUInteger. 249 00:14:03,640 --> 00:14:05,540 En ja, kunt u daarover later meer lezen. 250 00:14:05,540 --> 00:14:07,640 Deze dia's zullen zijn, natuurlijk, voor u beschikbaar. 251 00:14:07,640 --> 00:14:10,300 252 00:14:10,300 --> 00:14:11,280 >> Laten we eens kijken. 253 00:14:11,280 --> 00:14:12,150 OK, geweldig. 254 00:14:12,150 --> 00:14:15,410 Dus, dit is ook opgenomen in de dia omdat ik dacht dat dit een grote 255 00:14:15,410 --> 00:14:19,370 website die u introduceert Objective-C syntax. 256 00:14:19,370 --> 00:14:24,410 Dus, eigenlijk, waarom gaan we niet naar Chroom en bekijk deze website? 257 00:14:24,410 --> 00:14:30,650 258 00:14:30,650 --> 00:14:31,300 >> Rechts. 259 00:14:31,300 --> 00:14:36,670 Dus, wat ik wil laten zien jongens hier is dit beeld. 260 00:14:36,670 --> 00:14:41,630 Dus, dit is, een soort van, gaat worden wat je gaat om te zien binnenkant van een 261 00:14:41,630 --> 00:14:42,890 Xcode bestand. 262 00:14:42,890 --> 00:14:47,400 263 00:14:47,400 --> 00:14:51,430 Eigenlijk, waarom gaan we niet alleen een moment om, soort van, neem deze in 264 00:14:51,430 --> 00:14:53,470 >> Dus, dit boek - 265 00:14:53,470 --> 00:14:55,880 dat is het object dat we te maken hebben. 266 00:14:55,880 --> 00:14:59,680 En dan is het duidelijk gaat worden overgenomen van een ander voorwerp, maar 267 00:14:59,680 --> 00:15:01,810 je hoeft geen zorgen te maken over dat. 268 00:15:01,810 --> 00:15:04,430 En dan, het, misschien, heeft sommige lid variabelen. 269 00:15:04,430 --> 00:15:09,160 >> Het belangrijkste wat ik wil laten zien is de instantie methodes, hier. 270 00:15:09,160 --> 00:15:12,670 Dus, bijvoorbeeld methoden aangeduid door deze minteken. 271 00:15:12,670 --> 00:15:15,550 En dan, zoals u zult merken, zijn we reeds beginnen de paradigma zien 272 00:15:15,550 --> 00:15:17,670 voor methode verklaring, toch? 273 00:15:17,670 --> 00:15:22,670 De return type, de naam van de methode, en vervolgens het type van het argument, en 274 00:15:22,670 --> 00:15:24,660 vervolgens de naam van het argument. 275 00:15:24,660 --> 00:15:29,090 En dit minteken betekent dat het een instantiemethode, waardoor 276 00:15:29,090 --> 00:15:32,270 deze methoden zijn alleen beschikbaar voor voorwerpen die zijn geïnstantieerd. 277 00:15:32,270 --> 00:15:35,050 278 00:15:35,050 --> 00:15:39,100 >> Om het contrast dat, methoden met een plus teken voor hen zijn klasse 279 00:15:39,100 --> 00:15:43,640 methoden, hetgeen betekent dat u kunt bellen deze methoden, zelfs als u niet beschikt over 280 00:15:43,640 --> 00:15:45,970 nog een object gecreëerd. 281 00:15:45,970 --> 00:15:51,600 Dus, voor een duidelijk voorbeeld, NSString is een klasse. 282 00:15:51,600 --> 00:15:55,850 En u kunt bellen, bijvoorbeeld, methoden van de klasse op NSString - 283 00:15:55,850 --> 00:15:58,660 de werkelijke, zoals, woord NSString. 284 00:15:58,660 --> 00:16:02,050 >> Echter, om deze te gebruiken methoden, je eigenlijk 285 00:16:02,050 --> 00:16:03,460 nodig hebt om een ​​string te maken. 286 00:16:03,460 --> 00:16:08,980 Bijvoorbeeld, NSString ster koord gelijk bij aanhalingsteken, hello wereld. 287 00:16:08,980 --> 00:16:10,910 En dan kunt u deze methoden gebruiken - 288 00:16:10,910 --> 00:16:11,990 bijvoorbeeld methoden - 289 00:16:11,990 --> 00:16:14,790 op die hello wereld string. 290 00:16:14,790 --> 00:16:17,825 Dus, dat is het verschil tussen bijvoorbeeld methoden en methoden van de klasse. 291 00:16:17,825 --> 00:16:20,390 292 00:16:20,390 --> 00:16:21,930 >> En, we hebben net bedekt dit deel. 293 00:16:21,930 --> 00:16:25,300 294 00:16:25,300 --> 00:16:33,750 Eigenschappen zijn een ander ding dat zijn binnenkant van objecten, in principe. 295 00:16:33,750 --> 00:16:37,530 En verklaart u deze met het pand op trefwoord. 296 00:16:37,530 --> 00:16:39,940 U aan deze opties, hier, dat ik later zal uitleggen wanneer 297 00:16:39,940 --> 00:16:43,110 we gaan in een demo. 298 00:16:43,110 --> 00:16:43,660 Ja? 299 00:16:43,660 --> 00:16:43,950 Hi. 300 00:16:43,950 --> 00:16:45,440 >> Publiek: Kunt u inzoomen, alstublieft? 301 00:16:45,440 --> 00:16:46,130 >> RHED SHI: Oh ja. 302 00:16:46,130 --> 00:16:46,560 Sorry. 303 00:16:46,560 --> 00:16:49,140 >> PUBLIEK: Dank je wel. 304 00:16:49,140 --> 00:16:50,005 >> RHED SHI: Dat moet een stuk beter. 305 00:16:50,005 --> 00:16:51,240 >> PUBLIEK: Ja. 306 00:16:51,240 --> 00:16:53,940 Dank u. 307 00:16:53,940 --> 00:16:56,815 >> RHED SHI: Ja, gelieve herinneren me als Ik vergeet om in of uit te zoomen. 308 00:16:56,815 --> 00:17:00,590 309 00:17:00,590 --> 00:17:03,570 Dus, dit is alles wat ik wilde om te laten zien voor - 310 00:17:03,570 --> 00:17:05,970 whoa, dat is veel - 311 00:17:05,970 --> 00:17:06,790 voor deze website. 312 00:17:06,790 --> 00:17:12,210 Dus, laten we terugkeren naar onze dia gaan. 313 00:17:12,210 --> 00:17:17,819 >> Eigenlijk, nu laten we een moment nemen te duiken in een demo. 314 00:17:17,819 --> 00:17:25,490 Dus, zullen we beginnen met een nieuwe Xcode project. 315 00:17:25,490 --> 00:17:33,040 Dus, als u zult openen Xcode op al uw machines, moet u een aantal te nemen 316 00:17:33,040 --> 00:17:36,720 pagina waar het zegt, als, ofwel geopend een bestaand project of een nieuwe 317 00:17:36,720 --> 00:17:39,230 project, en je moet klik een nieuw project. 318 00:17:39,230 --> 00:17:41,477 En dan moet daarbij rekening u naar dit scherm. 319 00:17:41,477 --> 00:17:41,593 Ja? 320 00:17:41,593 --> 00:17:44,279 >> PUBLIEK: Als we niet over een Mac, doen we gewoon een soort chill? 321 00:17:44,279 --> 00:17:46,870 >> RHED SHI: Of kijk op met iemand, ja. 322 00:17:46,870 --> 00:17:47,740 Yeah. 323 00:17:47,740 --> 00:17:50,660 U kunt relaxen, ook. 324 00:17:50,660 --> 00:17:51,570 OK. 325 00:17:51,570 --> 00:17:55,410 >> Dus, wat gaan we eerst doen, nu, is, eigenlijk, we gaan doen 326 00:17:55,410 --> 00:17:56,600 Single View applicatie. 327 00:17:56,600 --> 00:18:01,340 Dus, als u zult opmerken, wat is er veel over Xcode en Apple ondersteuning voor 328 00:18:01,340 --> 00:18:05,690 ontwikkelaars is dat je een heleboel sjablonen te werken met reeds. 329 00:18:05,690 --> 00:18:09,210 Je zou, bijvoorbeeld, maken een meester-detail toepassing. 330 00:18:09,210 --> 00:18:10,920 U kunt een spel te maken - 331 00:18:10,920 --> 00:18:13,860 en eigenlijk, zal ik niet ingaan op games, omdat games zijn een ander verhaal 332 00:18:13,860 --> 00:18:15,320 voor iOS ontwikkeling. 333 00:18:15,320 --> 00:18:18,930 En ze zijn soort te scheiden, dus ik zal niet ingaan. 334 00:18:18,930 --> 00:18:22,580 >> Dan heb je pagina-gebaseerde toepassingen. 335 00:18:22,580 --> 00:18:24,010 Je hebt een tab toepassing - 336 00:18:24,010 --> 00:18:29,350 zo willen, bijvoorbeeld Bank of America Waarschijnlijk heeft, zoals, een tabblad app. 337 00:18:29,350 --> 00:18:32,140 Het is degene waar je de knoppen onderaan. 338 00:18:32,140 --> 00:18:34,750 En dan heb je een Sprite Kit spel. 339 00:18:34,750 --> 00:18:38,670 >> Of u kunt werken vanuit het niets, die is wat we later zullen doen. 340 00:18:38,670 --> 00:18:42,470 Maar laten we eerst beginnen met een weergave applicatie. 341 00:18:42,470 --> 00:18:48,590 Daarna zal het vragen om een ​​naam product, en we kunnen gewoon test te doen. 342 00:18:48,590 --> 00:18:50,190 Naam van de organisatie - 343 00:18:50,190 --> 00:18:54,140 zo, naam van de organisatie, bedrijf identifier - 344 00:18:54,140 --> 00:18:58,100 deze zijn belangrijk als je gaat om uw app in de App Store gezet. 345 00:18:58,100 --> 00:19:01,110 346 00:19:01,110 --> 00:19:05,116 Anders dan dat, is uw code gaat draaien absoluut prima zonder dit. 347 00:19:05,116 --> 00:19:09,940 >> Dit gaat van belang zijn als u wil - zo, per se, zoals, zet je app 348 00:19:09,940 --> 00:19:14,080 op uw telefoon of iets, en testen het uit, je weet wel, in het echte leven - 349 00:19:14,080 --> 00:19:15,360 Dit zal belangrijk zijn. 350 00:19:15,360 --> 00:19:20,110 Dit heeft de neiging om meestal geassocieerd met een soort van ontwikkelaar rekening 351 00:19:20,110 --> 00:19:20,970 met Apple. 352 00:19:20,970 --> 00:19:24,740 >> En zo is, weet ik, waarschijnlijk, veel van jullie hoeft niet elke ontwikkelaar accounts. 353 00:19:24,740 --> 00:19:26,460 Ik weet dat de universiteit heeft er een. 354 00:19:26,460 --> 00:19:27,630 Ik denk CS heeft er een. 355 00:19:27,630 --> 00:19:32,770 Maar, kun je me e-mail en ik zal proberen om dat uit voor je. 356 00:19:32,770 --> 00:19:38,210 Maar nu, ik heb net in sommige placeholder dingen hier. 357 00:19:38,210 --> 00:19:41,250 >> En je kunt natuurlijk hier, kies of je wilt dat het uitsluitend in 358 00:19:41,250 --> 00:19:44,410 iPhone, in iPad, of beide - 359 00:19:44,410 --> 00:19:46,630 universele toepassing. 360 00:19:46,630 --> 00:19:56,170 Dus, voor nu, laten we het doen universeel, net aan beide zijden van het platform te bekijken. 361 00:19:56,170 --> 00:19:57,120 >> Laten we eens kijken. 362 00:19:57,120 --> 00:20:01,510 Dus, nu, ik ga sparen het in een soort map. 363 00:20:01,510 --> 00:20:04,500 Maakt niet uit waar - je kan altijd verplaatsen later. 364 00:20:04,500 --> 00:20:09,380 En, nu, we worden gebracht onze Xcode project. 365 00:20:09,380 --> 00:20:12,890 Ik zou me geen zorgen over dit alles. 366 00:20:12,890 --> 00:20:17,510 Ik stel niets van aan te raken dit, tenzij u precies weet wat 367 00:20:17,510 --> 00:20:18,260 je doet. 368 00:20:18,260 --> 00:20:21,750 Dus, dit alles, gewoon negeren grotendeels. 369 00:20:21,750 --> 00:20:26,940 U hoeft niet aan te raken, en als je denkt u frituren sommige dingen hier, het 370 00:20:26,940 --> 00:20:28,600 krijgt een beetje lastig. 371 00:20:28,600 --> 00:20:32,480 >> Dus, waarom niet we kijken naar de bestanden op de 372 00:20:32,480 --> 00:20:34,700 linkerkant in onze navigator. 373 00:20:34,700 --> 00:20:37,060 Hier hebben we AppDelegate.h. 374 00:20:37,060 --> 00:20:43,430 We hebben AppDelegate.m Dus, zoals u zult bericht, hebben we bestanden, header die 375 00:20:43,430 --> 00:20:45,720 eindigen in punt h, en we hebben implementatie - 376 00:20:45,720 --> 00:20:46,970 eigenlijk, laat me vergroten 377 00:20:46,970 --> 00:20:56,270 378 00:20:56,270 --> 00:20:57,060 OK. 379 00:20:57,060 --> 00:20:59,940 Laat me vergroten 380 00:20:59,940 --> 00:21:05,810 >> Juist, dus je hebt bestanden header en je hebt implementatie bestanden. 381 00:21:05,810 --> 00:21:07,060 Eigenlijk - 382 00:21:07,060 --> 00:21:08,680 383 00:21:08,680 --> 00:21:09,240 OK. 384 00:21:09,240 --> 00:21:11,800 Dit is een beetje raar, maar geduld met mij. 385 00:21:11,800 --> 00:21:16,140 Dan, want we hebben gekozen voor een weergave toepassing, gaan we zijn 386 00:21:16,140 --> 00:21:17,340 werken met storyboard. 387 00:21:17,340 --> 00:21:22,140 >> Dus, storyboard is iets dat Apple is gekomen met om echt te helpen 388 00:21:22,140 --> 00:21:26,550 ontwikkelaars snel prototype hun toepassingen. 389 00:21:26,550 --> 00:21:29,410 Dus, dit is waar je kunt maken een app zonder het schrijven van een 390 00:21:29,410 --> 00:21:31,710 enkele regel code. 391 00:21:31,710 --> 00:21:35,390 Echter, in onze enkele weergave toepassing, Wij uiteraard een 392 00:21:35,390 --> 00:21:41,270 bestand voor onze mening, die is een uitzicht controller. 393 00:21:41,270 --> 00:21:45,150 Dus hebben we de header en de implementatie-bestand, hier. 394 00:21:45,150 --> 00:21:52,350 >> En, ik ga nu uit te zoomen, omdat we zullen moeten werken in het storyboard. 395 00:21:52,350 --> 00:21:55,190 Dus, hier is onze mening. 396 00:21:55,190 --> 00:22:00,120 Als we, gewoon, lopen de app op dit moment, er is niet veel spannende gaande. 397 00:22:00,120 --> 00:22:03,270 398 00:22:03,270 --> 00:22:05,040 Zo, zult u deze witte scherm te zien. 399 00:22:05,040 --> 00:22:06,110 OK? 400 00:22:06,110 --> 00:22:14,010 >> En, in onze nutsbedrijven gebied, kunnen we toevoegen een heleboel verschillende dingen aan. 401 00:22:14,010 --> 00:22:19,290 Dus, wanneer je te maken met schermen in iOS, uitzicht controllers zijn de 402 00:22:19,290 --> 00:22:23,150 objecten kapselen, soort, uw opvattingen. 403 00:22:23,150 --> 00:22:26,980 Dus, een uitzicht controller altijd heeft een eigenschap genaamd uitzicht. 404 00:22:26,980 --> 00:22:29,610 En dat uitzicht, typisch, bevat, je weet, wat je 405 00:22:29,610 --> 00:22:30,810 willen zien op een scherm. 406 00:22:30,810 --> 00:22:39,210 >> Dus, nou ja, laten we beginnen met het zetten, misschien, misschien een label. 407 00:22:39,210 --> 00:22:41,450 Dus, laten we een label op daar - 408 00:22:41,450 --> 00:22:44,080 plak het in het midden. 409 00:22:44,080 --> 00:22:49,560 Zo, nu dat ik heb geklikt op het etiket, I kan gaan in de eigenschappen inspecteur 410 00:22:49,560 --> 00:22:51,510 en beginnen met de waarde veranderen. 411 00:22:51,510 --> 00:22:55,040 Laten we het CS50 Colours. 412 00:22:55,040 --> 00:22:58,220 >> En, kan ik ook het lettertype veranderen. 413 00:22:58,220 --> 00:23:02,630 Dus in plaats van het doen, dat is de standaard, kunnen we een aangepaste een te doen. 414 00:23:02,630 --> 00:23:03,770 We kunnen veranderen - 415 00:23:03,770 --> 00:23:06,453 je weet wel, UltraLight, maak het 32. 416 00:23:06,453 --> 00:23:09,000 417 00:23:09,000 --> 00:23:11,370 En dan kunnen we onze box groter maken. 418 00:23:11,370 --> 00:23:14,410 >> PUBLIEK: Denk je dat je kunt inzoomen in slechts een beetje meer, misschien? 419 00:23:14,410 --> 00:23:14,810 >> RHED SHI: Ja? 420 00:23:14,810 --> 00:23:16,196 OK. 421 00:23:16,196 --> 00:23:17,450 >> PUBLIEK: tik het gewoon? 422 00:23:17,450 --> 00:23:19,020 >> RHED SHI: Eens kijken. 423 00:23:19,020 --> 00:23:20,382 Werkt dit? 424 00:23:20,382 --> 00:23:22,270 >> PUBLIEK: Net voorbij de Xcode? 425 00:23:22,270 --> 00:23:23,520 >> RHED SHI: Zeker. 426 00:23:23,520 --> 00:23:25,620 427 00:23:25,620 --> 00:23:25,940 OK. 428 00:23:25,940 --> 00:23:26,275 Geweldig. 429 00:23:26,275 --> 00:23:27,072 >> Publiek: Het etiket onder? 430 00:23:27,072 --> 00:23:28,920 Het label? 431 00:23:28,920 --> 00:23:29,480 >> RHED SHI: Wat is dat? 432 00:23:29,480 --> 00:23:32,050 >> Publiek: Wat drop-down was het etiket onder? 433 00:23:32,050 --> 00:23:35,170 >> RHED SHI: Dus, de vraag was, wat vervolgkeuzelijst was het etiket onder? 434 00:23:35,170 --> 00:23:37,260 Het moet gewoon, onder hier. 435 00:23:37,260 --> 00:23:39,330 Ik denk dat het een kubus ding. 436 00:23:39,330 --> 00:23:40,910 Maar meestal, dit is de standaard - 437 00:23:40,910 --> 00:23:43,250 Ik ga gewoon hier beneden tot ik een label. 438 00:23:43,250 --> 00:23:45,800 439 00:23:45,800 --> 00:23:47,730 Yeah. 440 00:23:47,730 --> 00:23:48,950 >> Dus nu hebben we ons label. 441 00:23:48,950 --> 00:23:51,040 Laten we hem in het midden. 442 00:23:51,040 --> 00:23:56,410 En Xcode geeft ons richtlijnen voor het centreren objecten. 443 00:23:56,410 --> 00:23:59,510 444 00:23:59,510 --> 00:24:01,480 Dus, laten we nu weer lopen onze code. 445 00:24:01,480 --> 00:24:08,110 446 00:24:08,110 --> 00:24:08,800 >> Daar gaan we. 447 00:24:08,800 --> 00:24:10,310 Dus, we hebben CS50 Colours. 448 00:24:10,310 --> 00:24:13,720 449 00:24:13,720 --> 00:24:15,420 En nu, laten we een knop op daar, toch? 450 00:24:15,420 --> 00:24:17,480 Want we willen maken deze interactieve. 451 00:24:17,480 --> 00:24:19,410 Dus, laten we hier een knop. 452 00:24:19,410 --> 00:24:39,020 En we zullen op deze knop "tap hier noemen om verder te gaan. "We zullen het centreren, ook 453 00:24:39,020 --> 00:24:39,990 Eigenlijk is het al gecentreerd. 454 00:24:39,990 --> 00:24:40,630 Yeah. 455 00:24:40,630 --> 00:24:43,130 >> Zo, nu hebben we een knop. 456 00:24:43,130 --> 00:24:53,000 En als we weer rennen dit, we gaan een leuke kleine knop hier te hebben. 457 00:24:53,000 --> 00:24:56,520 En ik kan het klikken, maar het niet doet niets, want we hebben niet gedaan 458 00:24:56,520 --> 00:24:58,500 iets met de knop nog. 459 00:24:58,500 --> 00:25:01,740 >> Dus, laten we maken een andere mening, toch? 460 00:25:01,740 --> 00:25:04,160 Dus, laten we zeggen dat ik wil aan te boren die knop en ik wil 461 00:25:04,160 --> 00:25:05,730 ga naar een andere pagina - 462 00:25:05,730 --> 00:25:06,820 andere weergave. 463 00:25:06,820 --> 00:25:14,440 Wat ik ga doen is, kan ik maken een uitzicht controller, toch? 464 00:25:14,440 --> 00:25:19,690 Nu zal ik op mijn knop klikt, en vervolgens, het belangrijkste is, ik ga 465 00:25:19,690 --> 00:25:20,910 klik - of - 466 00:25:20,910 --> 00:25:23,660 ja, drukt controle op mijn toetsenbord. 467 00:25:23,660 --> 00:25:24,880 Controle. 468 00:25:24,880 --> 00:25:27,005 Klik op de knop, en sleep. 469 00:25:27,005 --> 00:25:29,960 470 00:25:29,960 --> 00:25:33,550 >> Dus, vergeet niet om de control-toets ingedrukt. 471 00:25:33,550 --> 00:25:35,160 Laten we dat opnieuw doen. 472 00:25:35,160 --> 00:25:40,930 Dus, houd controle, klik en sleep aan wat je wilt doen. 473 00:25:40,930 --> 00:25:41,520 OK. 474 00:25:41,520 --> 00:25:43,610 >> En nu, ik heb verschillende opties hier. 475 00:25:43,610 --> 00:25:47,900 Ik kan ofwel duwen, of ik kan een doen modal, of ik kan een aangepaste doen. 476 00:25:47,900 --> 00:25:50,900 Push is alleen als je een navigatie-controller. 477 00:25:50,900 --> 00:25:54,270 Op dit moment, onze allereerste zicht controller is niet de binnenkant van elke 478 00:25:54,270 --> 00:25:55,610 navigatie-controller. 479 00:25:55,610 --> 00:25:59,500 Dus, de navigatie-controller is degene dat geeft je de back-knop op 480 00:25:59,500 --> 00:26:03,910 de iOS-app waar je hebt, weet je, die top, soort van, dikke streep - 481 00:26:03,910 --> 00:26:06,480 waar je terug kunt gaan, of vooruit, et cetera. 482 00:26:06,480 --> 00:26:07,740 Op dit moment heb ik niet dat. 483 00:26:07,740 --> 00:26:11,050 En ja, dat is waarom ik een push niet kan doen. 484 00:26:11,050 --> 00:26:12,480 >> Dus, ik klikte op push ongeluk, hier. 485 00:26:12,480 --> 00:26:16,480 En eigenlijk, laten we lopen de code, en het zou crashen op mij. 486 00:26:16,480 --> 00:26:19,770 487 00:26:19,770 --> 00:26:22,960 Alleen als ik op de knop hoewel, dus - 488 00:26:22,960 --> 00:26:23,420 rechts. 489 00:26:23,420 --> 00:26:26,480 Dus, dit is slecht. 490 00:26:26,480 --> 00:26:31,330 >> En, zoals je kunt zien, hier, we hebben de foutmelding. 491 00:26:31,330 --> 00:26:35,460 Dus, "Push segues kan alleen worden gebruikt wanneer bron controller wordt beheerd door een 492 00:26:35,460 --> 00:26:40,700 exemplaar van UI navigatie-controller. " Dus, omdat dit niet binnen een 493 00:26:40,700 --> 00:26:44,030 navigatie-controller, Ik kon dat niet doen. 494 00:26:44,030 --> 00:26:48,782 >> Dus, nu, ga ik terug naar de map, terug naar storyboard gaan. 495 00:26:48,782 --> 00:26:51,680 >> Publiek: Wat is de navigatie controller, weer? 496 00:26:51,680 --> 00:26:55,260 >> RHED SHI: Zo, nu ik zal je laten zien. 497 00:26:55,260 --> 00:26:56,200 Laten we eens kijken. 498 00:26:56,200 --> 00:27:00,510 Dus, ik ga om te klikken op deze visie controller, en dan ga ik om te gaan 499 00:27:00,510 --> 00:27:03,920 tot product - 500 00:27:03,920 --> 00:27:06,240 eigenlijk, nee, sorry - editor. 501 00:27:06,240 --> 00:27:08,360 En ik ga in te gaan - 502 00:27:08,360 --> 00:27:09,350 eigenlijk, heb ik klik op het? 503 00:27:09,350 --> 00:27:10,070 Nee. 504 00:27:10,070 --> 00:27:11,080 Daar gaan we. 505 00:27:11,080 --> 00:27:16,270 Ik ga om omhoog te gaan in de editor, ga naar beneden insluiten in, en daarna de navigatie 506 00:27:16,270 --> 00:27:17,520 controller. 507 00:27:17,520 --> 00:27:20,130 508 00:27:20,130 --> 00:27:20,720 >> OK. 509 00:27:20,720 --> 00:27:27,750 En, mijn werkruimte ziet er echt rommelig, dus laten we dit opruimen. 510 00:27:27,750 --> 00:27:29,000 Dus, dit alles is storyboard. 511 00:27:29,000 --> 00:27:32,510 512 00:27:32,510 --> 00:27:33,760 En op deze manier - 513 00:27:33,760 --> 00:27:37,030 514 00:27:37,030 --> 00:27:38,280 OK, stop - 515 00:27:38,280 --> 00:27:49,320 516 00:27:49,320 --> 00:27:50,860 Ik kan snel iets op te bouwen als deze. 517 00:27:50,860 --> 00:27:53,020 En toen, nu kan ik terug gaan, weet je? 518 00:27:53,020 --> 00:27:55,730 >> Maar dit is een beetje saai, toch? 519 00:27:55,730 --> 00:28:03,020 Dus, wat ik wil doen is, wil ik niet te maken, gewoon, een uitzicht 520 00:28:03,020 --> 00:28:03,870 controller. 521 00:28:03,870 --> 00:28:07,720 Laten we zeggen dat ik wilde eigenlijk een table view controller, dus ik kan zetten in 522 00:28:07,720 --> 00:28:12,110 enkele mooie kleuren, in de tabel. 523 00:28:12,110 --> 00:28:16,210 >> Zo, nu heb ik in mijn table view zetten controller, moet ik het terug aansluiten 524 00:28:16,210 --> 00:28:18,560 van deze toets om de view controller. 525 00:28:18,560 --> 00:28:21,780 Dus ik moet mijn controle doen, klikken, slepen ding weer. 526 00:28:21,780 --> 00:28:27,318 En nu kan ik push doen, omdat ik het insluiten het in een navigatie-controller. 527 00:28:27,318 --> 00:28:32,210 >> PUBLIEK: Navigation controller net stelt u in staat om te gaan van plaats tot plaats? 528 00:28:32,210 --> 00:28:33,540 >> RHED SHI: Ja. 529 00:28:33,540 --> 00:28:38,670 Dus, meer technisch, het is een object waar - 530 00:28:38,670 --> 00:28:43,150 zo, de binnenkant van de navigatie controller object, het 531 00:28:43,150 --> 00:28:44,780 houdt van een array. 532 00:28:44,780 --> 00:28:48,300 En dat array bevat alle volgende bekijken controllers. 533 00:28:48,300 --> 00:28:51,560 Dat is waarom wanneer u op terug, het gaat terug naar de vorige pagina. 534 00:28:51,560 --> 00:28:55,260 Omdat de navigatie-controller object, of de code die zorgt voor 535 00:28:55,260 --> 00:28:58,890 Dit object heeft een array die houdt volgen van deze view controllers en 536 00:28:58,890 --> 00:29:01,870 kan dan, weet je, DQ het uitzicht controller en geef je terug de 537 00:29:01,870 --> 00:29:02,750 vorige. 538 00:29:02,750 --> 00:29:05,200 >> Dus, dit is technische zaken, maar - 539 00:29:05,200 --> 00:29:07,505 en ik zal je later in te laten zien code, als we tijd hebben. 540 00:29:07,505 --> 00:29:10,270 Ik ben soort van lopen op tijd, maar - 541 00:29:10,270 --> 00:29:15,610 >> Dus, met de tabelweergave wat we kunnen doen is - 542 00:29:15,610 --> 00:29:18,440 Het is meestal automatisch ingesteld Dynamische Prototype - 543 00:29:18,440 --> 00:29:20,640 we gaan het Statische cellen te maken, anders gaan we 544 00:29:20,640 --> 00:29:22,920 lopen in sommige problemen. 545 00:29:22,920 --> 00:29:28,470 >> En dan, laten we zeggen dat ik ga een sectie hebben. 546 00:29:28,470 --> 00:29:31,000 Dus, secties is als - 547 00:29:31,000 --> 00:29:35,160 als je ooit hebt gezien dat de muziek app, wanneer je hebt kunstenaars, secties zou 548 00:29:35,160 --> 00:29:37,830 als een door middel Z's - 549 00:29:37,830 --> 00:29:38,780 de letters - 550 00:29:38,780 --> 00:29:42,600 en dan, weet je, de individuele rijen zou zijn de namen van de artiesten. 551 00:29:42,600 --> 00:29:47,460 En ja, wat is cool hier, is dat ik niet kan naar alle objecten binnen 552 00:29:47,460 --> 00:29:50,430 van mijn storyboard via deze drop-down menu, ook. 553 00:29:50,430 --> 00:29:56,600 >> Dus, ga ik klik op mijn afdeling, en ik wil, weet je, misschien vijf rijen. 554 00:29:56,600 --> 00:30:00,770 En dan, binnen elke rij, Ik wil een label zetten. 555 00:30:00,770 --> 00:30:04,080 556 00:30:04,080 --> 00:30:06,340 En ik ga dit Blue bellen. 557 00:30:06,340 --> 00:30:09,530 558 00:30:09,530 --> 00:30:15,630 En dan, ik wil een UI weergave zetten, je weet, misschien voor, zoals, een klein doosje. 559 00:30:15,630 --> 00:30:23,840 560 00:30:23,840 --> 00:30:28,710 >> Zodat ik mensen kan laten zien een voorbeeld van de kleur. 561 00:30:28,710 --> 00:30:34,150 En ik kom terug naar het pand gaan en veranderen die kleur aan, oh, ik niet 562 00:30:34,150 --> 00:30:35,510 weet, deze. 563 00:30:35,510 --> 00:30:38,630 564 00:30:38,630 --> 00:30:43,150 >> En dan, let ook, hier, als ik de accessoires, kan ik veel hebben 565 00:30:43,150 --> 00:30:46,160 van de verschillende accessoires die je normaal gesproken ziet. 566 00:30:46,160 --> 00:30:55,250 De onthulling indicator, het detail, of vinkje, of gewoon detail. 567 00:30:55,250 --> 00:30:59,080 Dus, misschien kunnen we doen, zoals, een openbaring indicator, bijvoorbeeld. 568 00:30:59,080 --> 00:31:03,540 >> En dan, waarom gaan we niet deze, kopie plakken, en leg ze in de 569 00:31:03,540 --> 00:31:06,740 volgende tabel rij. 570 00:31:06,740 --> 00:31:08,115 Dus, kunnen we dit Yellow noemen. 571 00:31:08,115 --> 00:31:10,620 572 00:31:10,620 --> 00:31:12,155 En ik zou kunnen hebben om dit uit te breiden. 573 00:31:12,155 --> 00:31:15,730 574 00:31:15,730 --> 00:31:17,290 Laten we het geel. 575 00:31:17,290 --> 00:31:20,610 En zo, kunnen we kopiëren plak onze weg naar beneden. 576 00:31:20,610 --> 00:31:24,910 577 00:31:24,910 --> 00:31:25,370 Wat was het? 578 00:31:25,370 --> 00:31:26,620 Paars. 579 00:31:26,620 --> 00:31:30,020 580 00:31:30,020 --> 00:31:34,740 >> Dus, dit zijn alle typische CS50 kleuren die je hebt gezien in de klas - 581 00:31:34,740 --> 00:31:37,160 eigenlijk, sorry - 582 00:31:37,160 --> 00:31:38,410 of op de website. 583 00:31:38,410 --> 00:31:49,700 584 00:31:49,700 --> 00:31:51,260 Hopelijk kunnen jullie zien wat ik hier doe. 585 00:31:51,260 --> 00:31:57,270 586 00:31:57,270 --> 00:31:57,890 OK. 587 00:31:57,890 --> 00:31:58,490 Laatste. 588 00:31:58,490 --> 00:32:02,040 >> Publiek: Hoe heb je toevoegen de rij in eerste instantie? 589 00:32:02,040 --> 00:32:04,740 >> RHED SHI: Dus, de vraag was, hoe heb ik voeg de rij aanvankelijk? 590 00:32:04,740 --> 00:32:07,500 Ik ging in deze sectie tafel - of hoe kan ik 591 00:32:07,500 --> 00:32:09,200 selecteert u de sectie tafel - 592 00:32:09,200 --> 00:32:11,250 en dan, hier, ik bijgewerkt het aantal rijen. 593 00:32:11,250 --> 00:32:19,920 594 00:32:19,920 --> 00:32:22,505 >> En, laat ik hopen dat dit werkt. 595 00:32:22,505 --> 00:32:30,620 596 00:32:30,620 --> 00:32:31,480 OK. 597 00:32:31,480 --> 00:32:32,870 Eens kijken of dit werkt. 598 00:32:32,870 --> 00:32:34,000 Oh, perfect, geweldig. 599 00:32:34,000 --> 00:32:35,300 OK. 600 00:32:35,300 --> 00:32:40,330 Terwijl ik aan het opbouwen was mijn demo, sommige dingen zijn niet op een lijn, dus, bedankt voor 601 00:32:40,330 --> 00:32:42,510 het applaus. 602 00:32:42,510 --> 00:32:42,920 >> Yeah. 603 00:32:42,920 --> 00:32:44,770 Dus, laten we eens kijken. 604 00:32:44,770 --> 00:32:47,550 We maken deze negen gewoon om ervoor te alles - of eigenlijk, laten we gewoon 605 00:32:47,550 --> 00:32:51,420 zet al deze tot openbaarmaking indicatoren. 606 00:32:51,420 --> 00:32:55,790 En dan, wat ik wil jou ook zien,, was hoe ik elk van deze kunnen nemen 607 00:32:55,790 --> 00:32:59,230 tabel rijen en hebben ze interageren - 608 00:32:59,230 --> 00:33:00,150 oh. 609 00:33:00,150 --> 00:33:01,400 Nee. 610 00:33:01,400 --> 00:33:05,700 611 00:33:05,700 --> 00:33:06,030 >> Oh. 612 00:33:06,030 --> 00:33:07,230 Ook wil ik je laten zien - 613 00:33:07,230 --> 00:33:13,080 hier kan ik de titel van leg mijn navigatie controller, toch? 614 00:33:13,080 --> 00:33:17,090 Dus eigenlijk, zult u merken, zodra ik ingebedde deze visie controller binnen 615 00:33:17,090 --> 00:33:22,010 van de navigatie-controller, zien we deze navigatiebalk aan de top van onze 616 00:33:22,010 --> 00:33:25,340 storyboard vertegenwoordiging van een uitzicht controller. 617 00:33:25,340 --> 00:33:29,270 En ja, dit geeft ons, als een visuele, soort, te begeleiden naar onze zichtbare scherm. 618 00:33:29,270 --> 00:33:34,360 Dit gaat duidelijk zijn de navigatiebalk. 619 00:33:34,360 --> 00:33:40,950 >> En wat ik snel wil doen, nu, wordt in een andere - 620 00:33:40,950 --> 00:33:45,880 dus dit table view controller deed ik door die een van deze en slepen 621 00:33:45,880 --> 00:33:49,800 hier, en dat is wat me toegestaan ​​om snel, echt, maak een tabelweergave 622 00:33:49,800 --> 00:33:50,850 controller. 623 00:33:50,850 --> 00:33:54,100 Als we de tijd wel, zult u zien dat, programmatisch, het is een 624 00:33:54,100 --> 00:33:57,660 beetje lastig om een ​​tabel te maken view controller, want er 625 00:33:57,660 --> 00:34:02,520 zijn een paar methoden die zijn nodig zijn voor u om, soort van, schrijven 626 00:34:02,520 --> 00:34:07,130 uitgevoerd om voor de tabelweergave controller correct worden weergegeven. 627 00:34:07,130 --> 00:34:15,340 >> Echter, ik wil gewoon laten zien, nu, een voorbeeld van waar, als ik deze nemen, 628 00:34:15,340 --> 00:34:15,920 bijvoorbeeld - 629 00:34:15,920 --> 00:34:18,290 Ik heb in een andere weergave controller zetten. 630 00:34:18,290 --> 00:34:27,320 En nu, laten we zeggen dat ik wil controleren alt mijn allereerste blauwe 631 00:34:27,320 --> 00:34:28,980 tabelrij naar hier. 632 00:34:28,980 --> 00:34:31,070 En ik wil dit Blue bellen. 633 00:34:31,070 --> 00:34:32,570 En dan - 634 00:34:32,570 --> 00:34:34,159 laten we eens kijken. 635 00:34:34,159 --> 00:34:41,050 Ik ben op het uitzicht nu, en ik kan veranderen de achtergrond blauw. 636 00:34:41,050 --> 00:34:45,945 >> En dus, bericht, hier, deze drop-down menu geeft je ook een hiërarchie van alle 637 00:34:45,945 --> 00:34:47,040 van deze objecten. 638 00:34:47,040 --> 00:34:50,530 Dus een belangrijk ding om op te merken, hier, is dat al deze dingen, hier - 639 00:34:50,530 --> 00:34:54,330 deze tabel View Controller, de tafel uitzicht, tafeltje, tabelweergave 640 00:34:54,330 --> 00:34:57,169 cel - het zijn allemaal objecten, in code. 641 00:34:57,169 --> 00:35:03,752 Dus, je weet wel, een label is nu onder de inhoud uitzicht, et cetera. 642 00:35:03,752 --> 00:35:05,020 Zo verder en zo voort. 643 00:35:05,020 --> 00:35:08,765 >> Dus, als we deze code uitvoert, we moet iets te zien - 644 00:35:08,765 --> 00:35:15,816 645 00:35:15,816 --> 00:35:17,870 laten we eens kijken of dit - ja. 646 00:35:17,870 --> 00:35:18,670 Dus, daar gaan we. 647 00:35:18,670 --> 00:35:22,120 Maar als we dat niet doen, geen van deze andere dingen werken. 648 00:35:22,120 --> 00:35:22,500 Rechts? 649 00:35:22,500 --> 00:35:23,800 Dus alleen deze werkt. 650 00:35:23,800 --> 00:35:29,100 En, in het belang van de tijd, zal ik niet gaan in, weet je, het zetten 651 00:35:29,100 --> 00:35:29,770 langs de andere. 652 00:35:29,770 --> 00:35:32,020 En dit is het einde van, soort, storyboard - 653 00:35:32,020 --> 00:35:33,400 wat ik wilde laten zien u voor het storyboard. 654 00:35:33,400 --> 00:35:36,330 655 00:35:36,330 --> 00:35:43,490 >> En, ik heb wel een uitgewerkt voorbeeld, eigenlijk, hier. 656 00:35:43,490 --> 00:35:48,090 Dus, dit is de storyboard die ik eerder maakte. 657 00:35:48,090 --> 00:35:52,740 Dus, zoals je kunt zien, dit was mijn navigatie controller. 658 00:35:52,740 --> 00:35:57,040 Dan had ik mijn eerste mening controller, dan had ik mijn table view controller, 659 00:35:57,040 --> 00:35:58,980 en toen had ik al deze - 660 00:35:58,980 --> 00:36:01,180 dus eerder, ik deed iets heel anders. 661 00:36:01,180 --> 00:36:04,450 Dus, excuseer die dingen. 662 00:36:04,450 --> 00:36:07,930 Ik zal waarschijnlijk opruimen later voor Ik stuur het op naar de productie. 663 00:36:07,930 --> 00:36:12,800 >> Maar als we dit uitvoeren, we zullen zien dat alle opties zijn 664 00:36:12,800 --> 00:36:14,050 beschikbaar voor ons. 665 00:36:14,050 --> 00:36:18,540 666 00:36:18,540 --> 00:36:21,320 Behalve dat ik niet de achtergronden maakte die kleuren. 667 00:36:21,320 --> 00:36:26,510 Dus, mooie eenvoudige applicatie. 668 00:36:26,510 --> 00:36:28,340 >> Nu, laten we proberen aan te pakken dit programmatisch. 669 00:36:28,340 --> 00:36:31,270 670 00:36:31,270 --> 00:36:32,130 OK. 671 00:36:32,130 --> 00:36:37,570 Dus, om dat te doen, we gaan gewoon om een ​​nieuwe Xcode project te starten. 672 00:36:37,570 --> 00:36:41,920 We zullen het een lege applicatie nu te maken, omdat we niet willen hebben de 673 00:36:41,920 --> 00:36:42,380 storyboard. 674 00:36:42,380 --> 00:36:46,590 Dus, ik ben mezelf gewoon te beperken tot niet Gebruik een van de storyboard, en een 675 00:36:46,590 --> 00:36:49,170 lege applicatie zal niet geef me een storyboard. 676 00:36:49,170 --> 00:36:52,256 Dit is gewoon om te voorkomen dat me van vreemdgaan. 677 00:36:52,256 --> 00:36:54,428 Laten we eens kijken. 678 00:36:54,428 --> 00:36:55,360 Wacht. 679 00:36:55,360 --> 00:36:55,960 Heb ik - 680 00:36:55,960 --> 00:36:56,448 Ja. 681 00:36:56,448 --> 00:36:57,698 OK. 682 00:36:57,698 --> 00:37:08,650 683 00:37:08,650 --> 00:37:09,180 >> Rechts. 684 00:37:09,180 --> 00:37:16,790 Dus, hier, we blijven zitten met niets anders dan code. 685 00:37:16,790 --> 00:37:19,460 Dus, laat me dit venster verplaatsen iets meer dan. 686 00:37:19,460 --> 00:37:22,020 687 00:37:22,020 --> 00:37:22,260 Rechts. 688 00:37:22,260 --> 00:37:28,160 Zoals je hier kunt zien, de enige bestanden ons gegeven zijn AppDelegate.h en dot 689 00:37:28,160 --> 00:37:30,500 m, en we hebben niet storyboard meer. 690 00:37:30,500 --> 00:37:39,580 >> Dus als we dit uitvoeren, zijn we nog steeds naar naar het witte doek, God zij dank. 691 00:37:39,580 --> 00:37:42,280 OK - wit scherm, maar niets anders. 692 00:37:42,280 --> 00:37:45,260 En, hier is het belangrijkste onderdeel. 693 00:37:45,260 --> 00:37:47,810 Dit is waar de actie gebeurt. 694 00:37:47,810 --> 00:37:51,410 In de vorige versies, is er meestal geen code hier, maar de 695 00:37:51,410 --> 00:37:55,600 storyboard bepaalt in wezen de code voor dit deel. 696 00:37:55,600 --> 00:37:57,470 Ik zal niet in detail treden over de wijze waarop. 697 00:37:57,470 --> 00:38:02,890 >> En wat we nu willen doen is, willen we hier in te gaan, en deze kleine ruimte 698 00:38:02,890 --> 00:38:05,050 opnieuw begint het creëren van onze app. 699 00:38:05,050 --> 00:38:06,092 Dus - 700 00:38:06,092 --> 00:38:06,318 ja? 701 00:38:06,318 --> 00:38:07,450 >> PUBLIEK: Zoom? 702 00:38:07,450 --> 00:38:07,770 >> RHED SHI: Zoom. 703 00:38:07,770 --> 00:38:09,020 Ja, natuurlijk. 704 00:38:09,020 --> 00:38:13,940 705 00:38:13,940 --> 00:38:14,520 OK. 706 00:38:14,520 --> 00:38:17,380 Ik zal het typen, dus moet dit niet zo veel uit. 707 00:38:17,380 --> 00:38:17,940 OK. 708 00:38:17,940 --> 00:38:22,720 >> Dus, eerst, herinneren we ons wilden maken een navigatie controller, toch? 709 00:38:22,720 --> 00:38:27,090 En ook, zoals je hier kunt zien, Xcode doet een heel groot werk van 710 00:38:27,090 --> 00:38:28,070 self-vulling. 711 00:38:28,070 --> 00:38:31,650 Dus, zoals je zult merken, de namen van alles is een stuk langer dan 712 00:38:31,650 --> 00:38:33,910 gebruikelijk, maar Xcode vult het in voor je. 713 00:38:33,910 --> 00:38:35,710 Dus ik kan gewoon op Enter. 714 00:38:35,710 --> 00:38:40,180 >> Dus, ik wil een UI navigatie creëren controller wijzer, en ik kan het noemen 715 00:38:40,180 --> 00:38:41,430 navigationController. 716 00:38:41,430 --> 00:38:43,040 717 00:38:43,040 --> 00:38:44,470 Nu, wat moet ik nu doen? 718 00:38:44,470 --> 00:38:49,510 Na deze gelijk-teken, moet ik, ten eerste, maak het binnenste van het geheugen. 719 00:38:49,510 --> 00:38:53,790 Dus ik ga doen NavigationController alloc - 720 00:38:53,790 --> 00:38:56,640 dus, dit is vergelijkbaar met malloc, dat jullie gebruikt in C - 721 00:38:56,640 --> 00:38:58,400 en dan, ik ga het init. 722 00:38:58,400 --> 00:39:03,670 >> Dus, het is echt belangrijk dat elke object dat u maakt, wilt u 723 00:39:03,670 --> 00:39:04,940 alloc en init het. 724 00:39:04,940 --> 00:39:08,600 Dat gaat om het creëren en instantialize het in geheugen, en 725 00:39:08,600 --> 00:39:10,480 nu kun je het gebruiken. 726 00:39:10,480 --> 00:39:10,780 Oke? 727 00:39:10,780 --> 00:39:14,360 Als u dat niet doet, uw object doet niet bestaan, en kom je in een bos 728 00:39:14,360 --> 00:39:17,290 problemen. 729 00:39:17,290 --> 00:39:20,250 >> En dan, ik wil maken een uitzicht controller, toch? 730 00:39:20,250 --> 00:39:25,580 Dus, ik wil een UIViewController maken ster - 731 00:39:25,580 --> 00:39:29,620 zo, alles is een pointer in Objective-C, en ik ga doen 732 00:39:29,620 --> 00:39:31,600 iets dergelijks hier - 733 00:39:31,600 --> 00:39:32,850 alloc, init. 734 00:39:32,850 --> 00:39:38,680 735 00:39:38,680 --> 00:39:40,150 OK. 736 00:39:40,150 --> 00:39:43,450 >> En wat ik ga doen is, ik ben gaat - zo, herinneren wanneer we deden 737 00:39:43,450 --> 00:39:45,360 de embed in de navigatie-controller? 738 00:39:45,360 --> 00:39:46,920 Dit is hoe je het doet in de code. 739 00:39:46,920 --> 00:39:54,550 Je gaat doen navigationController 740 00:39:54,550 --> 00:39:55,780 pushViewController - 741 00:39:55,780 --> 00:39:57,636 >> PUBLIEK: [onverstaanbaar]. 742 00:39:57,636 --> 00:39:59,030 Zal dit gebeuren voor ons, of -? 743 00:39:59,030 --> 00:40:00,080 >> RHED SHI: Oh, ja. 744 00:40:00,080 --> 00:40:00,550 Nee. 745 00:40:00,550 --> 00:40:02,740 Het houdt me beter. 746 00:40:02,740 --> 00:40:04,670 Nee, het zal werken voor u, ook. 747 00:40:04,670 --> 00:40:06,700 Dus, dit zijn alle methoden. 748 00:40:06,700 --> 00:40:10,400 Dus pushViewController is een werkwijze en Ook, meer specifiek, het is een 749 00:40:10,400 --> 00:40:13,590 instantie methode van de UI navigatie-controller. 750 00:40:13,590 --> 00:40:20,030 Want ik moest mijn UI navigatie creëren controller ster, en dan heb ik 751 00:40:20,030 --> 00:40:24,510 kan dit pushViewController roep mijn specifiek geval van een UI navigatie 752 00:40:24,510 --> 00:40:25,010 controller. 753 00:40:25,010 --> 00:40:29,490 >> PUBLIEK: Moeten we de exacte doen woord, of is het al bestaan ​​voor het? 754 00:40:29,490 --> 00:40:31,380 >> RHED SHI: Ja, want het is een methode. 755 00:40:31,380 --> 00:40:32,200 Het is als een functie. 756 00:40:32,200 --> 00:40:33,330 Het is net als printf. 757 00:40:33,330 --> 00:40:34,390 Het is net als scanf. 758 00:40:34,390 --> 00:40:36,250 Het is net als strcompare. 759 00:40:36,250 --> 00:40:40,310 Behalve het weet wat je zou willen typen en merken dat het zal altijd 760 00:40:40,310 --> 00:40:42,740 komen met dingen die wettelijk is toegestaan ​​voor u. 761 00:40:42,740 --> 00:40:47,620 Dus, als er niets opduikt hier, dan is er iets mis. 762 00:40:47,620 --> 00:40:50,550 >> Dus, pushViewController. 763 00:40:50,550 --> 00:40:52,580 Zo, nu, ik wil duwen mijn nieuw gemaakte 764 00:40:52,580 --> 00:40:56,850 UIViewController, en dan, geanimeerd - 765 00:40:56,850 --> 00:40:57,470 misschien niet. 766 00:40:57,470 --> 00:41:00,110 Omdat dit gaat worden de eerste view controller. 767 00:41:00,110 --> 00:41:03,210 Ik bedoel, zelfs als ik te maken geanimeerde, het zal waarschijnlijk niet opdagen, omdat 768 00:41:03,210 --> 00:41:05,050 het is het eerste scherm. 769 00:41:05,050 --> 00:41:06,540 >> En vergeet niet de beugels. 770 00:41:06,540 --> 00:41:08,850 Dus, herinner me hoe we de beugels? 771 00:41:08,850 --> 00:41:11,870 En tussen haakjes, de object roept een methode - 772 00:41:11,870 --> 00:41:15,910 dus ons doel is de navigatie controller, en de methode is een push 773 00:41:15,910 --> 00:41:17,210 view controller geanimeerd. 774 00:41:17,210 --> 00:41:21,920 En zie hoe het is in twee argumenten, en ze zijn van elkaar gescheiden door de, soort, 775 00:41:21,920 --> 00:41:24,390 woorden, en een dubbele punt. 776 00:41:24,390 --> 00:41:28,300 Dus, Objective-C probeert het leuk te maken en gemakkelijk voor u om te lezen hardop - 777 00:41:28,300 --> 00:41:33,020 uw code - en hebben het semi, soort, zinvol. 778 00:41:33,020 --> 00:41:37,150 >> Echter, deze norm te bereiken is niet genoeg. 779 00:41:37,150 --> 00:41:39,780 Laat me uitzoomen nu. 780 00:41:39,780 --> 00:41:44,210 Doen alleen dit is niet genoeg om krijgen wat we hebben gekregen om eerder. 781 00:41:44,210 --> 00:41:48,580 Dus hier, zult u merken dat er eigenlijk niet van plan om elke vorm van zijn 782 00:41:48,580 --> 00:41:50,190 bar, hier, toch? 783 00:41:50,190 --> 00:41:54,680 Er is geen navigatiebalk, die een middel dat we nog steeds niet gekregen het. 784 00:41:54,680 --> 00:41:58,850 >> En we kunnen testen dat uit, ook, door, misschien de achtergrondkleur van 785 00:41:58,850 --> 00:42:00,460 ViewController, toch? 786 00:42:00,460 --> 00:42:01,710 ViewController.background-- 787 00:42:01,710 --> 00:42:03,155 788 00:42:03,155 --> 00:42:03,640 ah. 789 00:42:03,640 --> 00:42:07,690 Dus, zie hoe ViewController hoefde niet een achtergrond kleur, hoewel ik 790 00:42:07,690 --> 00:42:08,780 wilde het openen? 791 00:42:08,780 --> 00:42:14,080 En dat komt omdat ViewController is een container voor het uitzicht. 792 00:42:14,080 --> 00:42:19,490 Dus, het heeft een eigenschap, die heeft dan een achtergrondkleur. 793 00:42:19,490 --> 00:42:25,510 >> En, kan ik het opgezet, een soort moeizaam, door te bellen naar de kleur 794 00:42:25,510 --> 00:42:28,130 op de UIColor object. 795 00:42:28,130 --> 00:42:33,210 Dus, bericht hier, redcolor is een methode. 796 00:42:33,210 --> 00:42:36,750 Het is een klasse methode UIColor. 797 00:42:36,750 --> 00:42:40,820 Omdat ik niet een te maken daadwerkelijke aanleg van een UIColor in orde 798 00:42:40,820 --> 00:42:42,020 om de methode aan te roepen op. 799 00:42:42,020 --> 00:42:45,050 Ik, gewoon, noemde het van het type-achtige naam. 800 00:42:45,050 --> 00:42:49,620 Ik, net als, noemde het op int, als int had, als een werkwijze om het, bijvoorbeeld. 801 00:42:49,620 --> 00:42:52,380 >> En dus, als we deze code uitvoert, zullen we merken dat de achtergrond is 802 00:42:52,380 --> 00:42:53,540 eigenlijk niet rood. 803 00:42:53,540 --> 00:42:54,790 Het is nog steeds wit. 804 00:42:54,790 --> 00:42:57,720 805 00:42:57,720 --> 00:43:04,550 En hoe we kunnen krijgen rond dat is, merken hoe er het self.window. 806 00:43:04,550 --> 00:43:08,260 Dat is, net als de uiteindelijke container voor uw toepassing. 807 00:43:08,260 --> 00:43:11,630 Het is de ultieme ding dat bevat alles op het scherm, voor 808 00:43:11,630 --> 00:43:13,650 iPhone of iPad applicatie. 809 00:43:13,650 --> 00:43:20,970 >> En, heel handig, self.window heeft deze eigenschap genaamd 810 00:43:20,970 --> 00:43:22,650 rootViewController. 811 00:43:22,650 --> 00:43:26,480 En dat gaat de wijzer te zijn de allereerste View Controller binnen 812 00:43:26,480 --> 00:43:27,270 van uw app. 813 00:43:27,270 --> 00:43:32,000 Dus, wat we willen doen hier, nu, is op gelijke onze NAVIGATIESET 814 00:43:32,000 --> 00:43:32,710 controller. 815 00:43:32,710 --> 00:43:33,760 Rechts? 816 00:43:33,760 --> 00:43:37,490 Omdat, technisch, navigatie controller is onze allereerste zicht 817 00:43:37,490 --> 00:43:38,770 controller. 818 00:43:38,770 --> 00:43:46,160 Het houdt van een scala aan andere view controllers, en we dit geduwd 819 00:43:46,160 --> 00:43:49,810 view controller in die array in de navigatie-controller. 820 00:43:49,810 --> 00:43:52,640 >> Dus, wil je niet om dit te doen. 821 00:43:52,640 --> 00:43:54,225 Dat zou je niet echt helpen. 822 00:43:54,225 --> 00:43:58,040 Wil je dit doen, als je wilde doen een navigatie-controller, die het meest 823 00:43:58,040 --> 00:44:01,100 van jullie zullen waarschijnlijk omdat je wilt aan, een soort van, een soort van, 824 00:44:01,100 --> 00:44:04,840 zoals, het menu om terug te gaan naar of een homepage om terug te gaan, in plaats van een 825 00:44:04,840 --> 00:44:05,470 leeg scherm. 826 00:44:05,470 --> 00:44:05,920 Ja? 827 00:44:05,920 --> 00:44:11,460 >> PUBLIEK: Is het ongemakkelijk voor u om in te zoomen op de - 828 00:44:11,460 --> 00:44:12,710 >> RHED SHI: Yeah. 829 00:44:12,710 --> 00:44:15,310 830 00:44:15,310 --> 00:44:15,720 Dus, ja. 831 00:44:15,720 --> 00:44:22,370 Dit is de code, en nu Laten we eens testen het uit. 832 00:44:22,370 --> 00:44:27,920 >> Dus, daar gaan we. 833 00:44:27,920 --> 00:44:29,170 Magic. 834 00:44:29,170 --> 00:44:30,960 835 00:44:30,960 --> 00:44:32,690 Dus, OK. 836 00:44:32,690 --> 00:44:34,420 Dank u. 837 00:44:34,420 --> 00:44:35,000 OK. 838 00:44:35,000 --> 00:44:38,690 Dus nu, wat we willen doen is - dus, we soort beperkt, hier, toch? 839 00:44:38,690 --> 00:44:45,130 We konden in potentie alles schrijven binnenkant van deze functie. 840 00:44:45,130 --> 00:44:48,470 Maar, dat is niet hoe iOS ontwikkeling meestal werkt. 841 00:44:48,470 --> 00:44:53,030 >> Dus, wat we gaan doen is, we zijn gaat een aantal nieuwe bestanden te maken. 842 00:44:53,030 --> 00:44:57,110 Maar, meer in het bijzonder, we gaan maakt u een andere Objective-C klasse, of 843 00:44:57,110 --> 00:44:58,010 een ander object - 844 00:44:58,010 --> 00:45:00,700 klasse en objecten uitwisselbaar hier. 845 00:45:00,700 --> 00:45:06,460 En, hier is hoe ik kon, in potentie, maak een andere klasse van U-controllers. 846 00:45:06,460 --> 00:45:12,030 >> Dus, het is een sub-klasse, zoals u zult merken, hier, het is een sub-klasse van de 847 00:45:12,030 --> 00:45:15,910 UI view controller, maar ik kan noem het een andere naam hier. 848 00:45:15,910 --> 00:45:19,400 Ik kon deze CS50 noemen, kon ik bellen deze visie controller, kon ik bellen 849 00:45:19,400 --> 00:45:21,640 dit blah view controller - 850 00:45:21,640 --> 00:45:22,400 wat ik wil. 851 00:45:22,400 --> 00:45:24,140 Dit is gewoon de naam voor de klasse. 852 00:45:24,140 --> 00:45:27,020 Echter, gaat het belangrijk om omdat, in wezen, wat ik doe 853 00:45:27,020 --> 00:45:29,720 hier is, ik ben het creëren een andere klasse naam. 854 00:45:29,720 --> 00:45:34,140 Dus het gaat worden, zoals sommige soort type of een object. 855 00:45:34,140 --> 00:45:35,910 Dus, moet het een beetje generiek. 856 00:45:35,910 --> 00:45:37,225 Het gaat niet heel specifiek te zijn. 857 00:45:37,225 --> 00:45:40,410 858 00:45:40,410 --> 00:45:44,480 >> En ook, ik wil wel wijzen uit deze twee opties. 859 00:45:44,480 --> 00:45:48,430 Omdat we doen alles wat binnen van code, soms is het een stuk makkelijker 860 00:45:48,430 --> 00:45:53,540 om in een interface bestand, zodat Ik kan letterlijk slepen en neerzetten, als 861 00:45:53,540 --> 00:45:54,960 we eerder deden met storyboard - 862 00:45:54,960 --> 00:45:57,810 je weet wel, een label of een knop, of wat anders. 863 00:45:57,810 --> 00:46:01,950 En zo, xibs zijn bestanden die u toelaten om die wel, en je hebt om het aansluiten 864 00:46:01,950 --> 00:46:04,310 deze opvatting controller bestand. 865 00:46:04,310 --> 00:46:06,540 >> Dus, ik ga bewust check deze niet. 866 00:46:06,540 --> 00:46:12,510 Normaal zou ik dit controleren, en als ik alleen dit deed voor de iPhone of iPad, I 867 00:46:12,510 --> 00:46:16,340 zou dit controleren en gewoon een voor, je weet wel, de iPhone of de iPad. 868 00:46:16,340 --> 00:46:19,750 Maar omdat ik doe universele, ik ga later twee van die maken. 869 00:46:19,750 --> 00:46:22,220 Dus, ik ga bewust vink deze. 870 00:46:22,220 --> 00:46:23,940 >> Dit is ook heel belangrijk. 871 00:46:23,940 --> 00:46:27,490 Heel vaak heb ik bugs gehad waar dit niet werd gecontroleerd. 872 00:46:27,490 --> 00:46:31,930 En ja, natuurlijk, is dit bestand niet, soort van, zoals, opgenomen of ingevoerd 873 00:46:31,930 --> 00:46:33,740 binnenkant van deze test map. 874 00:46:33,740 --> 00:46:38,180 En dus, mijn code heeft absoluut geen idee van het bestaan ​​van dit bestand, en 875 00:46:38,180 --> 00:46:41,080 dat veel pijn veroorzaakt en uren van debuggen. 876 00:46:41,080 --> 00:46:44,360 Maar, maar zorg ervoor dat dit zo is gecontroleerd dat, je weet wel, het doel van deze 877 00:46:44,360 --> 00:46:47,510 bestand voor deze toepassing. 878 00:46:47,510 --> 00:46:48,310 >> OK. 879 00:46:48,310 --> 00:46:51,680 Zo, nu hebben we twee nieuwe bestanden aangemaakt. 880 00:46:51,680 --> 00:46:54,050 En deze bestanden zien er vrij leeg. 881 00:46:54,050 --> 00:46:59,550 En, eigenlijk, laten we ook doorgaan op door het creëren van de xib bestanden. 882 00:46:59,550 --> 00:47:03,690 Dus, eerder, was ik in de Cocoa Touch drop-down. 883 00:47:03,690 --> 00:47:06,880 Nu, ik ga naar de gebruiker te gaan Interfaceaanraking, en zoals je kunt zien, ik 884 00:47:06,880 --> 00:47:08,120 kan een storyboard maken. 885 00:47:08,120 --> 00:47:11,710 >> Dus, zelfs ik begon met een leeg toepassing, kan ik nog steeds gebruik maken van een 886 00:47:11,710 --> 00:47:12,340 storyboard. 887 00:47:12,340 --> 00:47:15,480 Hoewel, het wordt lastig in termen van hoe u verbinding wilt maken 888 00:47:15,480 --> 00:47:16,820 dat uw code. 889 00:47:16,820 --> 00:47:18,230 Dus, ik zal niet gaan. 890 00:47:18,230 --> 00:47:22,160 >> Maar, wat we willen doen nu is het creëren van een uitzicht. 891 00:47:22,160 --> 00:47:25,720 En u kunt kiezen voor een iPhone of een iPad. 892 00:47:25,720 --> 00:47:30,180 En typisch, om aan te geven verschil - als u een doet 893 00:47:30,180 --> 00:47:31,950 universele toepassing - 894 00:47:31,950 --> 00:47:35,980 je ofwel zet een underscore iPhone, of u kunt een twiddly PARP doen. 895 00:47:35,980 --> 00:47:36,980 Het maakt eigenlijk niet uit. 896 00:47:36,980 --> 00:47:40,890 Het is gewoon voor u om te differentiëren die uitzicht is voor welk apparaat. 897 00:47:40,890 --> 00:47:43,470 898 00:47:43,470 --> 00:47:44,430 >> En zo, kijk nu. 899 00:47:44,430 --> 00:47:47,550 Ik heb een scherm dat ik kan werken. 900 00:47:47,550 --> 00:47:53,530 En dus, bijvoorbeeld, ik kan een etiket aanbrengen hier, weet je, en ik kan ook zetten 901 00:47:53,530 --> 00:47:54,820 andere knop hier. 902 00:47:54,820 --> 00:47:58,730 Ik zal niet de moeite te veranderen de waarden hier. 903 00:47:58,730 --> 00:48:09,050 >> Maar, wat is hier belangrijk is dat het bestand eigenaar - 904 00:48:09,050 --> 00:48:13,660 zo, ik ben binnenkant van de iPhone uitzicht, iPhone xib bestand. 905 00:48:13,660 --> 00:48:18,050 En in dit vaargebied of drop-down menu, ik wil naar de 906 00:48:18,050 --> 00:48:19,090 eigenaar bestand. 907 00:48:19,090 --> 00:48:22,630 En dit is het echt belangrijke stap hier. 908 00:48:22,630 --> 00:48:27,780 Ik wil de klas uitzicht maken controller, zodat dit xib bestand 909 00:48:27,780 --> 00:48:30,030 zal worden geassocieerd met mijn mening controller. 910 00:48:30,030 --> 00:48:33,590 911 00:48:33,590 --> 00:48:39,360 En alles wat ik doe in mijn mening controller programmatisch is 912 00:48:39,360 --> 00:48:42,800 zal hier worden weergegeven op. 913 00:48:42,800 --> 00:48:46,270 >> Dus, echter merken dat - 914 00:48:46,270 --> 00:48:55,995 eigenlijk, laten we deze visie achtergrond blauw, bijvoorbeeld. 915 00:48:55,995 --> 00:49:00,280 916 00:49:00,280 --> 00:49:01,530 Of groen. 917 00:49:01,530 --> 00:49:03,870 918 00:49:03,870 --> 00:49:07,950 En dan, dus als je zult opmerken, terug in deze code, dit is waar we naar onze 919 00:49:07,950 --> 00:49:09,200 navigatie-controller. 920 00:49:09,200 --> 00:49:12,650 921 00:49:12,650 --> 00:49:18,310 >> Hoewel we die stap, het is nog steeds rood, niet groen te zijn. 922 00:49:18,310 --> 00:49:20,350 En er is een reden waarom. 923 00:49:20,350 --> 00:49:28,090 Het is omdat, wanneer we inited onze mening controller, hier - 924 00:49:28,090 --> 00:49:30,010 sorry, het is een beetje gek - 925 00:49:30,010 --> 00:49:34,520 toen we inited onze mening controller hier, we inited het van het algemene type 926 00:49:34,520 --> 00:49:35,990 UIViewController. 927 00:49:35,990 --> 00:49:36,560 OK? 928 00:49:36,560 --> 00:49:40,560 Dus we hebben niet eens doen het met deze klasse. 929 00:49:40,560 --> 00:49:42,030 >> Dus denk eraan, dit is als een klasse nu. 930 00:49:42,030 --> 00:49:47,160 Het kan worden gezien als een soort net als UIViewController is een type. 931 00:49:47,160 --> 00:49:51,080 En om dat te gebruiken, wat we moeten doen is het importeren - 932 00:49:51,080 --> 00:49:52,520 import ViewController - 933 00:49:52,520 --> 00:49:55,750 en, zoals je kunt zien, is het autofills het voor mij. 934 00:49:55,750 --> 00:49:56,570 Dus, ViewController - 935 00:49:56,570 --> 00:50:02,070 en nu, hier, kan ik dit veranderen UIViewController te ViewController. 936 00:50:02,070 --> 00:50:05,050 En nu, hier, ik kan veranderen dit ViewController. 937 00:50:05,050 --> 00:50:07,790 938 00:50:07,790 --> 00:50:09,250 >> Laten we opnieuw uitvoeren dit. 939 00:50:09,250 --> 00:50:16,970 940 00:50:16,970 --> 00:50:19,690 Het is nog steeds rood. 941 00:50:19,690 --> 00:50:23,370 En de reden waarom het nog steeds rood is, omdat - 942 00:50:23,370 --> 00:50:26,230 woah, wat daar gebeurde? 943 00:50:26,230 --> 00:50:31,500 We wilden deze xib associëren bestand met het uitzicht controller. 944 00:50:31,500 --> 00:50:37,540 Echter, om daadwerkelijk doen dat moeten we in te gaan. 945 00:50:37,540 --> 00:50:42,980 En als we dat doen de init, willen we doen initWithNibName, en dan willen we 946 00:50:42,980 --> 00:50:48,910 doen het op touw View_iPhone, bijvoorbeeld. 947 00:50:48,910 --> 00:50:51,700 U kunt de bundel hier negeren. 948 00:50:51,700 --> 00:50:54,965 >> En dit gaat toestaan ons, eigenlijk - 949 00:50:54,965 --> 00:51:00,620 950 00:51:00,620 --> 00:51:02,160 uh oh, er is een probleem. 951 00:51:02,160 --> 00:51:09,300 952 00:51:09,300 --> 00:51:09,980 Rechts. 953 00:51:09,980 --> 00:51:17,670 >> En ja, er is een probleem, want in onze mening xib file, we hebben een label en 954 00:51:17,670 --> 00:51:18,720 we hebben een knop. 955 00:51:18,720 --> 00:51:23,660 Echter, hoewel we hebben aangesloten die twee, er is niets binnen van 956 00:51:23,660 --> 00:51:27,440 ViewController.h of ViewController.m dat deze weerspiegelen 957 00:51:27,440 --> 00:51:29,160 toetsen of deze labels. 958 00:51:29,160 --> 00:51:32,425 Dus, moeten we die in zo schrijven eigenschappen van het uitzicht controller. 959 00:51:32,425 --> 00:51:35,290 960 00:51:35,290 --> 00:51:39,490 >> Dus, dit is hoe je verklaren een woning. 961 00:51:39,490 --> 00:51:43,422 Het duurt in, meestal deze twee opties. 962 00:51:43,422 --> 00:51:48,690 Voor de toepassing van ons en dit seminar, Ik zou zeggen dat, in het algemeen, 963 00:51:48,690 --> 00:51:52,250 de meeste eigenschappen zijn nonatomic en behouden. 964 00:51:52,250 --> 00:51:55,420 U kunt maximaal gelezen door Google zoeken, je weet wel, het verschil tussen 965 00:51:55,420 --> 00:51:58,620 nonatomic en te behouden op, je weet, Google of zoiets. 966 00:51:58,620 --> 00:52:01,090 En ik neem je mee naar, zoals, Stapel Overloop, waar mensen zullen hebben 967 00:52:01,090 --> 00:52:03,605 antwoorden voor de verschillen tussen deze. 968 00:52:03,605 --> 00:52:07,000 Maar voor nu, dat is wat we willen worden betrokken bij. 969 00:52:07,000 --> 00:52:12,790 >> En we willen een UI label, ster maken, en we kunnen het noemen wat we willen. 970 00:52:12,790 --> 00:52:15,710 We kunnen dit noemen, je weet wel, label. 971 00:52:15,710 --> 00:52:18,270 972 00:52:18,270 --> 00:52:20,110 En, we gaan een ander te creëren een voor de knop. 973 00:52:20,110 --> 00:52:24,380 974 00:52:24,380 --> 00:52:29,910 En vergeet niet om de asterisk, omdat we te maken hebben met pointers 975 00:52:29,910 --> 00:52:36,740 vrijwel overal binnen van Objective-C. 976 00:52:36,740 --> 00:52:42,110 >> Maar dat zal nog niet opgelost het probleem, zoals je hier kunt zien. 977 00:52:42,110 --> 00:52:50,540 En de reden is dat, wanneer we willen een xib bestand etiket of een verbinding 978 00:52:50,540 --> 00:52:55,690 toets om het programma of de header en implementatie file, we willen 979 00:52:55,690 --> 00:52:58,255 voeg dit stukje code - 980 00:52:58,255 --> 00:53:00,610 stopcontact. 981 00:53:00,610 --> 00:53:03,600 Merk op dat het een sleutelwoord. 982 00:53:03,600 --> 00:53:07,970 >> En, zodra ik klaar ben met het typen dat uit, moet deze hebben 983 00:53:07,970 --> 00:53:09,100 twee cirkels, hier. 984 00:53:09,100 --> 00:53:11,200 Meestal zijn ze niet ingevuld 985 00:53:11,200 --> 00:53:12,920 Ik weet niet zeker waarom ze zijn. 986 00:53:12,920 --> 00:53:21,370 Maar meestal zal u handmatig hebt sluit ze door naar deze kant van 987 00:53:21,370 --> 00:53:23,530 de nutsbedrijven gebied. 988 00:53:23,530 --> 00:53:28,430 >> En dus, nu, ik heb mijn label gekregen geselecteerd, en ik wil slepen deze nieuwe 989 00:53:28,430 --> 00:53:33,910 verwijzingen stopcontact om eigenaar van mijn bestand, en klik vervolgens op Label. 990 00:53:33,910 --> 00:53:40,230 Dus nu, eindelijk, dit label is verbonden met dit label. 991 00:53:40,230 --> 00:53:44,950 En dit label is wat we gaan gebruiken programmatisch te veranderen zijn 992 00:53:44,950 --> 00:53:49,250 tekst, het lettertype, de achtergrond kleur, et cetera. 993 00:53:49,250 --> 00:53:52,430 >> Dus, waarom niet wij doen de hetzelfde voor de toets? 994 00:53:52,430 --> 00:53:54,770 En zoals u zult merken, voor de knop, het is een beetje ingewikkelder. 995 00:53:54,770 --> 00:53:59,060 Omdat, ik bedoel, je moet druk op een knop, dus het heeft een veel 996 00:53:59,060 --> 00:54:02,950 van opties voor de manier waarop gebruikers kan drukken op een knop. 997 00:54:02,950 --> 00:54:06,570 En dan zullen we later zien dat we kunnen dit verbinden aan onze 998 00:54:06,570 --> 00:54:09,140 code te laten werken. 999 00:54:09,140 --> 00:54:12,770 >> Dus, voor nu al willen we verbinden aan de eigenlijke knop 1000 00:54:12,770 --> 00:54:13,570 binnenkant van onze code. 1001 00:54:13,570 --> 00:54:19,640 Dus gaan we naar de nieuwe verwijzingen uitlaat, en doe dan de knop. 1002 00:54:19,640 --> 00:54:22,068 Nu, laten we opnieuw uitvoeren dit. 1003 00:54:22,068 --> 00:54:23,040 Uh oh. 1004 00:54:23,040 --> 00:54:23,890 OK. 1005 00:54:23,890 --> 00:54:25,140 Ik weet niet wat er hier aan de hand nu. 1006 00:54:25,140 --> 00:54:48,450 1007 00:54:48,450 --> 00:54:49,700 Whoa. 1008 00:54:49,700 --> 00:54:57,380 1009 00:54:57,380 --> 00:54:58,960 Slechts een ogenblik, hier. 1010 00:54:58,960 --> 00:55:02,490 >> Eigenlijk, waarom gaan we niet een kijken naar een ander voorbeeld in 1011 00:55:02,490 --> 00:55:05,800 het belang van de tijd. 1012 00:55:05,800 --> 00:55:06,200 OK. 1013 00:55:06,200 --> 00:55:10,610 Dus, hier is het beter voorbereid voorbeeld voor ViewController. 1014 00:55:10,610 --> 00:55:13,230 1015 00:55:13,230 --> 00:55:17,110 Zoals je hier kunt zien, heb ik begrepen de eigenschappen van het 1016 00:55:17,110 --> 00:55:18,460 label en de knop. 1017 00:55:18,460 --> 00:55:20,370 En dan dit stukje code hier - 1018 00:55:20,370 --> 00:55:21,830 dit IBAction - 1019 00:55:21,830 --> 00:55:27,740 was een verbinding met deze knop hier. 1020 00:55:27,740 --> 00:55:33,940 Dus zoals je hier kunt zien, Touch Binnen omhoog is verbonden met de selector 1021 00:55:33,940 --> 00:55:37,390 riep ingedrukt houden. 1022 00:55:37,390 --> 00:55:41,700 >> Dus kunnen we eigenlijk gaan door de beweging weer, hier, door het nemen van Touch Up 1023 00:55:41,700 --> 00:55:48,750 Binnen en slepen het naar File's Owner, en vervolgens 1024 00:55:48,750 --> 00:55:51,570 Klik op de knop gedrukt. 1025 00:55:51,570 --> 00:55:52,820 Nu, laten we lopen onze code. 1026 00:55:52,820 --> 00:55:55,710 1027 00:55:55,710 --> 00:56:02,020 Dus nu, op deze knop werkt nu en brengt ons naar de volgende pagina. 1028 00:56:02,020 --> 00:56:08,430 >> En, in termen van onze view controller, dit is het stukje code dat nam 1029 00:56:08,430 --> 00:56:10,000 zorg van de toets ingedrukt. 1030 00:56:10,000 --> 00:56:14,260 En het is belangrijk om hier op te merken, dat Ik heb een ander type weergave gecreëerd 1031 00:56:14,260 --> 00:56:16,330 controller heet een tafel view controller. 1032 00:56:16,330 --> 00:56:19,900 Dus, dit gelijkaardig aan rug in was storyboard, toen sleepte ik een van 1033 00:56:19,900 --> 00:56:23,450 deze table view controllers in het storyboard. 1034 00:56:23,450 --> 00:56:24,470 Ik ben het creëren van een ander 1035 00:56:24,470 --> 00:56:30,000 >> Pointer naar de tabelweergave controller, alloc en init-ing, en dan doen 1036 00:56:30,000 --> 00:56:34,490 zelf dot navigatie controller, duwen ViewController, deze nieuwe 1037 00:56:34,490 --> 00:56:35,350 ViewController. 1038 00:56:35,350 --> 00:56:39,750 En ik heb de animatie om ja te stellen, want nu de binnenkant van mijn app, en ik 1039 00:56:39,750 --> 00:56:45,670 willen eigenlijk zien de animatie gaan vanaf de homepage naar de tafel 1040 00:56:45,670 --> 00:56:46,920 view controller. 1041 00:56:46,920 --> 00:56:48,830 1042 00:56:48,830 --> 00:56:51,110 >> PUBLIEK: Heb je nog zorgen over garbage collection? 1043 00:56:51,110 --> 00:56:51,840 >> RHED SHI: Wat is dat? 1044 00:56:51,840 --> 00:56:54,740 Nee. 1045 00:56:54,740 --> 00:56:58,970 Dus, de vraag is, heb je om te werken met garbage collection? 1046 00:56:58,970 --> 00:57:03,470 Dus, Xcode 4 had als ARC, dat is automatische reference counting. 1047 00:57:03,470 --> 00:57:06,120 En ja, meestal als je een nieuwe start project, zou je controleren dat, omdat 1048 00:57:06,120 --> 00:57:09,440 niemand echt wil om te gaan met geheugen vrijmaken en zo. 1049 00:57:09,440 --> 00:57:13,720 Maar ik denk dat in Xcode 5, is er zelfs geen die optie op het nieuwe project. 1050 00:57:13,720 --> 00:57:16,750 Dus, het automatisch doet dat voor u. 1051 00:57:16,750 --> 00:57:16,920 Ja? 1052 00:57:16,920 --> 00:57:20,970 >> Publiek: Kunt u een exporteren PDF in je storyboard? 1053 00:57:20,970 --> 00:57:22,020 >> RHED SHI: Ja, zeker. 1054 00:57:22,020 --> 00:57:28,180 Dus, al deze zijn opgenomen in broncode, zodat jullie kunnen controleren 1055 00:57:28,180 --> 00:57:30,730 het werkelijke Xcode project voor. 1056 00:57:30,730 --> 00:57:31,105 Yeah? 1057 00:57:31,105 --> 00:57:35,944 >> Publiek: Maar, ik bedoel, kan ik afdrukken van een PDF met mijn storyboard? 1058 00:57:35,944 --> 00:57:38,920 Als ik wil gewoon exporteren beelden om iemand te tonen. 1059 00:57:38,920 --> 00:57:39,160 >> RHED SHI: Oh ja. 1060 00:57:39,160 --> 00:57:41,980 Ik denk, misschien, kun je gewoon neem een ​​schermafdruk. 1061 00:57:41,980 --> 00:57:44,350 Ja, en een scherm stuur ze geschoten of zoiets. 1062 00:57:44,350 --> 00:57:45,600 Yeah. 1063 00:57:45,600 --> 00:57:49,170 1064 00:57:49,170 --> 00:57:50,570 >> Dus, laten we eens kijken. 1065 00:57:50,570 --> 00:57:56,470 In het belang van de tijd, denk ik dat is alles wat ik kan vandaag dekken. 1066 00:57:56,470 --> 00:57:59,600 Maar, ik weet dat het eigenlijk gewoon nauwelijks de oppervlakte van iOS te raken 1067 00:57:59,600 --> 00:58:00,370 ontwikkeling. 1068 00:58:00,370 --> 00:58:05,630 Dus, aarzel dan niet om me te contacteren als u vragen over iOS 1069 00:58:05,630 --> 00:58:07,000 ontwikkeling. 1070 00:58:07,000 --> 00:58:12,840 En hopelijk zal ik in staat om schoon een deel van de code voor de bron 1071 00:58:12,840 --> 00:58:16,830 code-bestanden, zodat je wat je hebt echt mooie voorbeelden om mee te werken. 1072 00:58:16,830 --> 00:58:21,020 >> Anders dan dat, als je jongens gaan de CS50 Hackathon, kan ik of kan 1073 00:58:21,020 --> 00:58:25,730 er niet zijn, en ik kan helpen met een aantal iOS ontwikkeling, ook. 1074 00:58:25,730 --> 00:58:26,980 Dus, heel erg bedankt, jongens. 1075 00:58:26,980 --> 00:58:31,168