>> RHED SHI: Welkom bij zie CS50 seminar -
Introduction to iOS.
Ik dank u allen voor uw komst.
Ik hoop dat je net zo enthousiast als ik over iOS.
Vorig jaar nam ik CS50 als tweedejaarsstudent, en ik eigenlijk geleerd iOS voor mijn
afstudeerproject.
En het was behoorlijk -
goed, het was niet makkelijk, maar er zijn veel steun tutorials online.
En ik hoop echt dat met deze seminar, ik geef je jongens een hoofd
start op iOS ontwikkeling
>> Dus in termen van IOS ontwikkeling, zijn er twee belangrijke dingen die we
vandaag willen dekken.
Ten eerste, de taal -
de taal gaat worden in Objective-C. We zullen eigenlijk horen
iets echt spannend.
Dus, kun je lid worden van de hele Apple gemeenschap van ontwikkelaars en bouwen een aantal
echt geweldig apps.
>> Ook iOS 7 is mooi, hopelijk, voor sommigen van u.
Maar het is controversieel, ik weet het.
En vooral, wat ik wil doen is gids je door Objective-C, en ook
Xcode, de geïntegreerde ontwikkelomgeving dat je in
werken in voor iOS.
>> En dus, maar een woord over Objective-C. Kortom, het is exact dezelfde als C,
maar met een heleboel andere dingen.
En zo, strenger, het is eigenlijk een super set van C. Dus alles wat je
kan doen in C op dit moment, dat is eigenlijk graag PSET 0 tot en met 6, je
kan doen in Objective-C.
>> Dus, voel je niet bang voor deze nieuwe taal die je gaat om te leren.
Je hebt al gedekt er veel van, want je hebt alles gedaan C afgelopen
semester, behalve nu je gaat veel meer om mee te werken.
En ik ga gewoon om u te leiden door middel van een enkele voorbeelden om wat te markeren
van de belangrijkste verschillen die ik vond waren echt belangrijk toen ik hoorde
Objective-C vorig jaar.
>> Nou eigenlijk, ja, het andere punt is, Objective-C is uiteraard
object-georiënteerde.
En we zullen een beetje bespreken over wat dat later betekent.
Kortom, het is net hoe je gewerkt met structs in deze afgelopen PSET, met
knooppunten en soortgelijke andere dat soort dingen.
Behalve, in Objective-C, alles is een object, en je gaat worden
passeren rond verwijzingen naar objecten dan de waarden zelf.
Dus, het is gewoon iets belangrijks in gedachten te houden.
>> Dus, waarom beginnen we niet met een paar verschillen in syntax tussen C en
Objective-C?
Ik wil de # markeren, kunt Weet standaard io.H in C en C + +, met
de Objective-C-versie van dat, wat is # import, en dan een soort van
header file.
In dit geval zou het UIKit zijn, je weet wel, slash UIKit.h.
Het kan ook zijn, je weet wel, MKMapView om je in te hakken MKMapview.h als je wilt
te doen, zoals een kaart binnenkant van je app.
Soortgelijke dingen als dat.
>> Dus, het belangrijkste is onder andere is nu veranderd te importeren.
Maar het idee blijft.
Je gaat importeren een soort van header-bestand in uw programma.
>> Ik wil ook het verschil te benadrukken tussen printf en NSLog.
Maar, zoals we al eerder zeiden, Objective-C is een strikte super-set van
C, waardoor printf bestaat in Objective-C, ook.
Maar, de meeste mensen niet dat gebruiken.
De meeste mensen gebruiken dit NSLog omdat het geeft u een tijdstempel, en we zullen zien
in latere actie.
Maar, het is over het algemeen een meer bruikbaar manier om uit te printen variabelen.
>> En ik wil ook benadrukken dat NSLog neemt op precies dezelfde
placeholder waarden als printf doet -
dus% d is voor een int, % F is voor een vlotter.
Maar ik wil benadrukken deze allerlaatste -
NSLog% at-teken -
dat is een tijdelijke aanduiding voor een object.
En zoals ik al eerder zei, Objective-C voor vrij veel meestal in objecten,
en zo zal deze in gebruik komen wanneer u wilt afdrukken, misschien, misschien een
NSArray of NSDictionary, of een NSString.
>> Dus, ook merken dat, in onze NSLog verklaring, hebben we een aan-teken voor
van de offerte -
dat wil zeggen dat de snaren betekenen, nu, in Objective-C zijn objecten.
Ze zijn niet langer alleen char sterren.
Ze zijn objecten en zijn als zodanig behandeld.
>> Dus, het is echt belangrijk dat wanneer je NSLog gebruiken duurt het in een NS
snaar, wat betekent dat je zult moeten een op te nemen in de voorkant van uw
aanhalingstekens.
En daarom zie je, hier, in alle mijn functie oproepen op dit NSLog, ik
een aan voor de aanhalingstekens, zelfs hoewel de% d en% f's zijn
allemaal hetzelfde uit C.
>> Eventuele vragen tot nu toe?
Ik zal proberen om te gaan door dit snel dus dat we meer tijd om te werken kan hebben
met Xcode en Objective-C, dus dat jullie meer kunt krijgen
vertrouwd mee.
>> Vervolgens wil ik iets markeren conceptueel belangrijk.
Dus, C meeste dingen functies.
We maken een functie aan te roepen.
Wij verklaren functies op deze manier, met de terugkeer typt eerst, dan de
functienaam, haakjes, en dan ongeacht argumenten en het soort
deze argumenten willen we passeren inch
En Objective-C, omdat alles is een object of klasse -
dus klasse en object zijn twee termen die meestal synoniem met elkaar,
dus ik kan zijn uitwisselbaar gedurende het seminar.
>> Maar, zult u zien dat we methoden in Objective-C plaats functies.
En methoden behoren tot objecten.
Dus gewoon zo, misschien wel bijvoorbeeld, knoop -
ons type [onverstaanbaar]
knooppunt van PSET 6 of 5 -
we hebben het woord, eigendom, of het volgende knooppunt aanwijzer.
Methoden zijn gewoon functies binnen van een soort van structuur.
>> Dus, in dit geval, zou de structuur het object, en dan is de methode
iets dat van een object.
En dit is hoe je zou verklaren, soort, een methode.
Je zou beginnen met, opnieuw, de terugkeer soort - dus, heb ik geprobeerd om kleur
coderen de sleutelwoorden, zodat jullie kan het, op zijn minst, opmaak zien
gelijkenissen tussen functie verklaringen en methode verklaringen.
Dus, begin je met, je weet wel, een terugkeer Type - in dit geval is een array of
een NSArray pointer -
en dan heb je deze methode.
En dan, wat interessant is hier dat in plaats van haakjes, we
zijn deze dubbele punten.
En dan, in de voorkant van onze argumenten, we gezet, weer haakjes het type
van ons betoog.
>> Zo, nu ben ik probeer te maken de vergelijking tussen, je weet wel, n en
nummer, omdat ze zowel als ints.
En dan, de andere is een NSUInteger type.
En dan, met Objective-C, wanneer u wilt meerdere argumenten hebben in
uw methode clausule, u, soort van, scheiden ze uit dit soort zoals -
Ik ben niet helemaal zeker hoe het te beschrijven, maar dit is een goed voorbeeld van hoe je
kan meerdere argumenten hebben daar.
>> Je zou natuurlijk gewoon helemaal negeren de andArray colon NSArray
matrix als je gewoon een methode wilde dat neemt in een argument.
Ja, vraag.
>> Publiek: Zijn beide NSUInteger en NSArray argumenten die kunnen worden genomen in
binnen de NSArray?
>> RHED SHI: Ja.
Dus, laat het me uitleggen.
Dus, ja.
Dus, de vraag was zijn NSUInteger en NSArray * typen van de argumenten,
en dat klopt.
Dus, wil je altijd wat te specificeren het type van uw argument is.
En hier, ik probeer u voorstellen om een ​​deel van de syntax en vocab van
Objective-C, dus die zijn werkelijke types dat je te maken krijgt met.
>> En zoals u zult merken, arrays zijn niet meer, soort,
eenvoudige beugel dingen.
Ze zijn objecten.
Hoewel, als we naar het volgende glijbaan, kunnen we zien dat we kunnen
hard-code een NSArray in Objective-C met gewoon een op symbool voor
de beugels.
Ik ben niet, eigenlijk, helemaal zeker van of Ik syntactisch hard-coded een array
juist voor de C-versie, maar dat is hoort in een C array.
>> Dus, dit is hoe je zou, weet je, misschien gebruik maken van de functies of de
methoden die we eerder gemaakt.
Rechts?
Dus, dit is waar we verklaren ons functie en onze methode.
En nu willen we ze te gebruiken in ons programma, en dit is
hoe wij het zouden doen.
Dus, in C, zou je, je weet wel, misschien, een bool b en u instellen dat
gelijk zijn aan de functie, en vervolgens u passeert in de argumenten.
>> In Objective-C, is het vrij veel het zelfde ding.
Je hebt NSArray * my_array, en het is ga gelijk - nu, de enige
verschil hier is dit object ding, die ik heb geel gemarkeerd, en
zoals je kunt zien, in C, is er geen andere gele woord.
En het is omdat methoden behoren met een bepaald object.
Dus dat is de reden waarom ik een object moet hebben dat, soort, noemt deze methode op
het getal nul, en vervolgens de NSArray a, b, c, d.
Heeft u vragen over zeggen?
>> We zullen deze begrippen in actie te zien vrij snel als we het gaan in een demo.
OK.
Nu wil ik een beetje kort praten Xcode ongeveer 5, de
geïntegreerde ontwikkelomgeving dat je zult werken met.
Ik weet dat veel van jullie, of sommigen van u, niet Macs, wat een probleem
omdat Xcode is niet beschikbaar voor Windows en PC.
Vraag me niet waarom, maar waarschijnlijk -
ja, corporate.
Whatever.
Maar toch, dus, ik verontschuldig me als sommige van je moet wel een soort van downloaden
virtuele machine voor Mac Om Xcode 5 draaien.
Maar het is een tamelijk sjiek software te gebruiken.
>> En dus, voordat we een duik in een soort demo, ik wil je alleen een toon
beeld van wat Xcode eruit ziet in uw venster, en dan ook praten over
wat deze hele ruimte is.
Dus, het is net zoiets als het leren hoe te gebruik van Microsoft Word, behalve dat u wilt
vertrouwd gemaakt met alle verschillende dingen die
zijn hier aan de hand.
>> Dus eerst, wil ik je wijzen aan de werkbalk bovenaan.
Je zult zien dat, aan de top, zult u de bestandsnaam hebben -
of, eigenlijk, je project naam en dan de bestandsnaam.
Kennis te nemen van het spel en de stop knoppen.
Dat zijn degenen die je in gebruiken om uw app draaien op de
simulator -
de iOS-simulator.
Dit komt automatisch met Xcode 5, zodat u zich geen zorgen te maken over
downloaden van een soort van simulator.
Je drukt gewoon spelen en dan loopt uw ​​app.
En je kunt spelen met je, en je zult zien hoe het later werkt.
>> En vervolgens in het midden, is natuurlijk waar al uw mooie code is
ga.
En dan, op de linkerzijde, zult u hebben dit, soort, map -
navigatie -
en dan zul je ook zien dat, samen met het mappictogram, zijn er een
boel andere iconen er die later nuttig zijn.
>> En dan, aan de rechterkant is een hulpprogramma gebied waar u kunt werken met
sommige objecten en geef je weten wat de kleur hebben, welke
Het lettertype moet zijn, et cetera.
Hoewel, alles wat je doet in de bijkeuken, kunt u
doen in de code ook.
En dus, zal ik gaan door twee voorbeelden van het gebruik, eenvoudig, geen code op
alle - of zeer minimale code -
verzen alle code, gewoon zo dat jullie weet wat je wel en niet kan doen in
Xcode en Objective-C.
>> En tenslotte op de bodem, heb je de debug omgeving.
Dus, u niet langer hoeft te GDB lopen, et cetera, op uw programma's.
Het doet dit automatisch voor u.
En u kunt ook afdrukken dingen naar dit gebied.
Dus eigenlijk, later, we gaan door mario.c, als jullie nog herinneren
dat, in Xcode.
Dus dat zou leuk zijn.
>> En dan, alleen maar om het terug te brengen Objective-C, wil ik benadrukken wat
je kunt doen met if statements.
Dus, weet je, want Objective-C is een superset van C, alles wat je doet,
letterlijk, hetzelfde als C. U gewoon kleine verschillen.
Zo, zult u het formulier merken voor een if verklaring is nog steeds hetzelfde - je hebt
indien, en dan heb je tussen haakjes met een voorwaarde binnenkant van, en dan
accolades voor wat u wilt doen binnenkant van daar.
>> Toch wilde ik deze dia zetten hier, alleen om te illustreren dat,
omdat we te maken hebben met objecten nu, we zullen moeten deze dingen te gebruiken
zo genoemd, is gelijk aan touwtjes, omdat is toevallig een werkwijze van
koord of een NSString object.
Zo word in dit geval, een NSString object, en het heeft een methode genaamd is
gelijk aan touwtje, en dan zijn we passeren in een hard-coded string zien
of die gelijk zijn elkaar.
>> Eventuele vragen tot nu toe?
OK.
En, ik wil gaan over een voor de verklaring ook.
>> Dus, bijvoorbeeld, als we wilden lus over de lengte van een string C, deze
u bekend moet zijn.
En, in Objective-C, wil ik om deze te markeren, soort,
methode genaamd telling.
Nou, laat me neem dat terug.
Telling is een methode array.
Echter, het is meer in het bijzonder een eigendom van de array, dat is waarom je
kan de dot-notatie te gebruiken.
Maar ik wil niet te krijgen in te veel van dit conceptuele spul, ik wil gewoon
om te laten zien hoe de dingen eruit zou zien zoals in Objective-C versus C.
>> En ook, ik wil erop wijzen dat hoewel ik heb gebruikt NSUInteger
voor al mijn i's in Objective-C, U kunt ook gebruik maken van int, omdat int is
volledig geldig in Objective-C, ook.
Ja?
>> PUBLIEK: Is het gewoon stilistische, of is -
>> RHED SHI: Yeah.
Dus, zoals u zult zien -
Dus, de vraag was is dat gewoon een kwestie van stijl.
Zoals je zult zien, ik heb een, soort van, ster sterretje ding naar beneden op de bodem, en
die link brengt u naar een stack overflow vormen, waar iemand uitlegt
het verschil tussen een int in NSInteger en een NSUInteger.
En ja, kunt u daarover later meer lezen.
Deze dia's zullen zijn, natuurlijk, voor u beschikbaar.
>> Laten we eens kijken.
OK, geweldig.
Dus, dit is ook opgenomen in de dia omdat ik dacht dat dit een grote
website die u introduceert Objective-C syntax.
Dus, eigenlijk, waarom gaan we niet naar Chroom en bekijk deze website?
>> Rechts.
Dus, wat ik wil laten zien jongens hier is dit beeld.
Dus, dit is, een soort van, gaat worden wat je gaat om te zien binnenkant van een
Xcode bestand.
Eigenlijk, waarom gaan we niet alleen een moment om, soort van, neem deze in
>> Dus, dit boek -
dat is het object dat we te maken hebben.
En dan is het duidelijk gaat worden overgenomen van een ander voorwerp, maar
je hoeft geen zorgen te maken over dat.
En dan, het, misschien, heeft sommige lid variabelen.
>> Het belangrijkste wat ik wil laten zien is de instantie methodes, hier.
Dus, bijvoorbeeld methoden aangeduid door deze minteken.
En dan, zoals u zult merken, zijn we reeds beginnen de paradigma zien
voor methode verklaring, toch?
De return type, de naam van de methode, en vervolgens het type van het argument, en
vervolgens de naam van het argument.
En dit minteken betekent dat het een instantiemethode, waardoor
deze methoden zijn alleen beschikbaar voor voorwerpen die zijn geïnstantieerd.
>> Om het contrast dat, methoden met een plus teken voor hen zijn klasse
methoden, hetgeen betekent dat u kunt bellen deze methoden, zelfs als u niet beschikt over
nog een object gecreëerd.
Dus, voor een duidelijk voorbeeld, NSString is een klasse.
En u kunt bellen, bijvoorbeeld, methoden van de klasse op NSString -
de werkelijke, zoals, woord NSString.
>> Echter, om deze te gebruiken methoden, je eigenlijk
nodig hebt om een ​​string te maken.
Bijvoorbeeld, NSString ster koord gelijk bij aanhalingsteken, hello wereld.
En dan kunt u deze methoden gebruiken -
bijvoorbeeld methoden -
op die hello wereld string.
Dus, dat is het verschil tussen bijvoorbeeld methoden en methoden van de klasse.
>> En, we hebben net bedekt dit deel.
Eigenschappen zijn een ander ding dat zijn binnenkant van objecten, in principe.
En verklaart u deze met het pand op trefwoord.
U aan deze opties, hier, dat ik later zal uitleggen wanneer
we gaan in een demo.
Ja?
Hi.
>> Publiek: Kunt u inzoomen, alstublieft?
>> RHED SHI: Oh ja.
Sorry.
>> PUBLIEK: Dank je wel.
>> RHED SHI: Dat moet een stuk beter.
>> PUBLIEK: Ja.
Dank u.
>> RHED SHI: Ja, gelieve herinneren me als Ik vergeet om in of uit te zoomen.
Dus, dit is alles wat ik wilde om te laten zien voor -
whoa, dat is veel -
voor deze website.
Dus, laten we terugkeren naar onze dia gaan.
>> Eigenlijk, nu laten we een moment nemen te duiken in een demo.
Dus, zullen we beginnen met een nieuwe Xcode project.
Dus, als u zult openen Xcode op al uw machines, moet u een aantal te nemen
pagina waar het zegt, als, ofwel geopend een bestaand project of een nieuwe
project, en je moet klik een nieuw project.
En dan moet daarbij rekening u naar dit scherm.
Ja?
>> PUBLIEK: Als we niet over een Mac, doen we gewoon een soort chill?
>> RHED SHI: Of kijk op met iemand, ja.
Yeah.
U kunt relaxen, ook.
OK.
>> Dus, wat gaan we eerst doen, nu, is, eigenlijk, we gaan doen
Single View applicatie.
Dus, als u zult opmerken, wat is er veel over Xcode en Apple ondersteuning voor
ontwikkelaars is dat je een heleboel sjablonen te werken met reeds.
Je zou, bijvoorbeeld, maken een meester-detail toepassing.
U kunt een spel te maken -
en eigenlijk, zal ik niet ingaan op games, omdat games zijn een ander verhaal
voor iOS ontwikkeling.
En ze zijn soort te scheiden, dus ik zal niet ingaan.
>> Dan heb je pagina-gebaseerde toepassingen.
Je hebt een tab toepassing -
zo willen, bijvoorbeeld Bank of America Waarschijnlijk heeft, zoals, een tabblad app.
Het is degene waar je de knoppen onderaan.
En dan heb je een Sprite Kit spel.
>> Of u kunt werken vanuit het niets, die is wat we later zullen doen.
Maar laten we eerst beginnen met een weergave applicatie.
Daarna zal het vragen om een ​​naam product, en we kunnen gewoon test te doen.
Naam van de organisatie -
zo, naam van de organisatie, bedrijf identifier -
deze zijn belangrijk als je gaat om uw app in de App Store gezet.
Anders dan dat, is uw code gaat draaien absoluut prima zonder dit.
>> Dit gaat van belang zijn als u wil - zo, per se, zoals, zet je app
op uw telefoon of iets, en testen het uit, je weet wel, in het echte leven -
Dit zal belangrijk zijn.
Dit heeft de neiging om meestal geassocieerd met een soort van ontwikkelaar rekening
met Apple.
>> En zo is, weet ik, waarschijnlijk, veel van jullie hoeft niet elke ontwikkelaar accounts.
Ik weet dat de universiteit heeft er een.
Ik denk CS heeft er een.
Maar, kun je me e-mail en ik zal proberen om dat uit voor je.
Maar nu, ik heb net in sommige placeholder dingen hier.
>> En je kunt natuurlijk hier, kies of je wilt dat het uitsluitend in
iPhone, in iPad, of beide -
universele toepassing.
Dus, voor nu, laten we het doen universeel, net aan beide zijden van het platform te bekijken.
>> Laten we eens kijken.
Dus, nu, ik ga sparen het in een soort map.
Maakt niet uit waar - je kan altijd verplaatsen later.
En, nu, we worden gebracht onze Xcode project.
Ik zou me geen zorgen over dit alles.
Ik stel niets van aan te raken dit, tenzij u precies weet wat
je doet.
Dus, dit alles, gewoon negeren grotendeels.
U hoeft niet aan te raken, en als je denkt u frituren sommige dingen hier, het
krijgt een beetje lastig.
>> Dus, waarom niet we kijken naar de bestanden op de
linkerkant in onze navigator.
Hier hebben we AppDelegate.h.
We hebben AppDelegate.m Dus, zoals u zult bericht, hebben we bestanden, header die
eindigen in punt h, en we hebben implementatie -
eigenlijk, laat me vergroten
OK.
Laat me vergroten
>> Juist, dus je hebt bestanden header en je hebt implementatie bestanden.
Eigenlijk -
OK.
Dit is een beetje raar, maar geduld met mij.
Dan, want we hebben gekozen voor een weergave toepassing, gaan we zijn
werken met storyboard.
>> Dus, storyboard is iets dat Apple is gekomen met om echt te helpen
ontwikkelaars snel prototype hun toepassingen.
Dus, dit is waar je kunt maken een app zonder het schrijven van een
enkele regel code.
Echter, in onze enkele weergave toepassing, Wij uiteraard een
bestand voor onze mening, die is een uitzicht controller.
Dus hebben we de header en de implementatie-bestand, hier.
>> En, ik ga nu uit te zoomen, omdat we zullen moeten werken in het storyboard.
Dus, hier is onze mening.
Als we, gewoon, lopen de app op dit moment, er is niet veel spannende gaande.
Zo, zult u deze witte scherm te zien.
OK?
>> En, in onze nutsbedrijven gebied, kunnen we toevoegen een heleboel verschillende dingen aan.
Dus, wanneer je te maken met schermen in iOS, uitzicht controllers zijn de
objecten kapselen, soort, uw opvattingen.
Dus, een uitzicht controller altijd heeft een eigenschap genaamd uitzicht.
En dat uitzicht, typisch, bevat, je weet, wat je
willen zien op een scherm.
>> Dus, nou ja, laten we beginnen met het zetten, misschien, misschien een label.
Dus, laten we een label op daar -
plak het in het midden.
Zo, nu dat ik heb geklikt op het etiket, I kan gaan in de eigenschappen inspecteur
en beginnen met de waarde veranderen.
Laten we het CS50 Colours.
>> En, kan ik ook het lettertype veranderen.
Dus in plaats van het doen, dat is de standaard, kunnen we een aangepaste een te doen.
We kunnen veranderen -
je weet wel, UltraLight, maak het 32.
En dan kunnen we onze box groter maken.
>> PUBLIEK: Denk je dat je kunt inzoomen in slechts een beetje meer, misschien?
>> RHED SHI: Ja?
OK.
>> PUBLIEK: tik het gewoon?
>> RHED SHI: Eens kijken.
Werkt dit?
>> PUBLIEK: Net voorbij de Xcode?
>> RHED SHI: Zeker.
OK.
Geweldig.
>> Publiek: Het etiket onder?
Het label?
>> RHED SHI: Wat is dat?
>> Publiek: Wat drop-down was het etiket onder?
>> RHED SHI: Dus, de vraag was, wat vervolgkeuzelijst was het etiket onder?
Het moet gewoon, onder hier.
Ik denk dat het een kubus ding.
Maar meestal, dit is de standaard -
Ik ga gewoon hier beneden tot ik een label.
Yeah.
>> Dus nu hebben we ons label.
Laten we hem in het midden.
En Xcode geeft ons richtlijnen voor het centreren objecten.
Dus, laten we nu weer lopen onze code.
>> Daar gaan we.
Dus, we hebben CS50 Colours.
En nu, laten we een knop op daar, toch?
Want we willen maken deze interactieve.
Dus, laten we hier een knop.
En we zullen op deze knop "tap hier noemen om verder te gaan. "We zullen het centreren, ook
Eigenlijk is het al gecentreerd.
Yeah.
>> Zo, nu hebben we een knop.
En als we weer rennen dit, we gaan een leuke kleine knop hier te hebben.
En ik kan het klikken, maar het niet doet niets, want we hebben niet gedaan
iets met de knop nog.
>> Dus, laten we maken een andere mening, toch?
Dus, laten we zeggen dat ik wil aan te boren die knop en ik wil
ga naar een andere pagina -
andere weergave.
Wat ik ga doen is, kan ik maken een uitzicht controller, toch?
Nu zal ik op mijn knop klikt, en vervolgens, het belangrijkste is, ik ga
klik - of -
ja, drukt controle op mijn toetsenbord.
Controle.
Klik op de knop, en sleep.
>> Dus, vergeet niet om de control-toets ingedrukt.
Laten we dat opnieuw doen.
Dus, houd controle, klik en sleep aan wat je wilt doen.
OK.
>> En nu, ik heb verschillende opties hier.
Ik kan ofwel duwen, of ik kan een doen modal, of ik kan een aangepaste doen.
Push is alleen als je een navigatie-controller.
Op dit moment, onze allereerste zicht controller is niet de binnenkant van elke
navigatie-controller.
Dus, de navigatie-controller is degene dat geeft je de back-knop op
de iOS-app waar je hebt, weet je, die top, soort van, dikke streep -
waar je terug kunt gaan, of vooruit, et cetera.
Op dit moment heb ik niet dat.
En ja, dat is waarom ik een push niet kan doen.
>> Dus, ik klikte op push ongeluk, hier.
En eigenlijk, laten we lopen de code, en het zou crashen op mij.
Alleen als ik op de knop hoewel, dus -
rechts.
Dus, dit is slecht.
>> En, zoals je kunt zien, hier, we hebben de foutmelding.
Dus, "Push segues kan alleen worden gebruikt wanneer bron controller wordt beheerd door een
exemplaar van UI navigatie-controller. " Dus, omdat dit niet binnen een
navigatie-controller, Ik kon dat niet doen.
>> Dus, nu, ga ik terug naar de map, terug naar storyboard gaan.
>> Publiek: Wat is de navigatie controller, weer?
>> RHED SHI: Zo, nu ik zal je laten zien.
Laten we eens kijken.
Dus, ik ga om te klikken op deze visie controller, en dan ga ik om te gaan
tot product -
eigenlijk, nee, sorry - editor.
En ik ga in te gaan -
eigenlijk, heb ik klik op het?
Nee.
Daar gaan we.
Ik ga om omhoog te gaan in de editor, ga naar beneden insluiten in, en daarna de navigatie
controller.
>> OK.
En, mijn werkruimte ziet er echt rommelig, dus laten we dit opruimen.
Dus, dit alles is storyboard.
En op deze manier -
OK, stop -
Ik kan snel iets op te bouwen als deze.
En toen, nu kan ik terug gaan, weet je?
>> Maar dit is een beetje saai, toch?
Dus, wat ik wil doen is, wil ik niet te maken, gewoon, een uitzicht
controller.
Laten we zeggen dat ik wilde eigenlijk een table view controller, dus ik kan zetten in
enkele mooie kleuren, in de tabel.
>> Zo, nu heb ik in mijn table view zetten controller, moet ik het terug aansluiten
van deze toets om de view controller.
Dus ik moet mijn controle doen, klikken, slepen ding weer.
En nu kan ik push doen, omdat ik het insluiten het in een navigatie-controller.
>> PUBLIEK: Navigation controller net stelt u in staat om te gaan van plaats tot plaats?
>> RHED SHI: Ja.
Dus, meer technisch, het is een object waar -
zo, de binnenkant van de navigatie controller object, het
houdt van een array.
En dat array bevat alle volgende bekijken controllers.
Dat is waarom wanneer u op terug, het gaat terug naar de vorige pagina.
Omdat de navigatie-controller object, of de code die zorgt voor
Dit object heeft een array die houdt volgen van deze view controllers en
kan dan, weet je, DQ het uitzicht controller en geef je terug de
vorige.
>> Dus, dit is technische zaken, maar -
en ik zal je later in te laten zien code, als we tijd hebben.
Ik ben soort van lopen op tijd, maar -
>> Dus, met de tabelweergave wat we kunnen doen is -
Het is meestal automatisch ingesteld Dynamische Prototype -
we gaan het Statische cellen te maken, anders gaan we
lopen in sommige problemen.
>> En dan, laten we zeggen dat ik ga een sectie hebben.
Dus, secties is als -
als je ooit hebt gezien dat de muziek app, wanneer je hebt kunstenaars, secties zou
als een door middel Z's -
de letters -
en dan, weet je, de individuele rijen zou zijn de namen van de artiesten.
En ja, wat is cool hier, is dat ik niet kan naar alle objecten binnen
van mijn storyboard via deze drop-down menu, ook.
>> Dus, ga ik klik op mijn afdeling, en ik wil, weet je, misschien vijf rijen.
En dan, binnen elke rij, Ik wil een label zetten.
En ik ga dit Blue bellen.
En dan, ik wil een UI weergave zetten, je weet, misschien voor, zoals, een klein doosje.
>> Zodat ik mensen kan laten zien een voorbeeld van de kleur.
En ik kom terug naar het pand gaan en veranderen die kleur aan, oh, ik niet
weet, deze.
>> En dan, let ook, hier, als ik de accessoires, kan ik veel hebben
van de verschillende accessoires die je normaal gesproken ziet.
De onthulling indicator, het detail, of vinkje, of gewoon detail.
Dus, misschien kunnen we doen, zoals, een openbaring indicator, bijvoorbeeld.
>> En dan, waarom gaan we niet deze, kopie plakken, en leg ze in de
volgende tabel rij.
Dus, kunnen we dit Yellow noemen.
En ik zou kunnen hebben om dit uit te breiden.
Laten we het geel.
En zo, kunnen we kopiëren plak onze weg naar beneden.
Wat was het?
Paars.
>> Dus, dit zijn alle typische CS50 kleuren die je hebt gezien in de klas -
eigenlijk, sorry -
of op de website.
Hopelijk kunnen jullie zien wat ik hier doe.
OK.
Laatste.
>> Publiek: Hoe heb je toevoegen de rij in eerste instantie?
>> RHED SHI: Dus, de vraag was, hoe heb ik voeg de rij aanvankelijk?
Ik ging in deze sectie tafel - of hoe kan ik
selecteert u de sectie tafel -
en dan, hier, ik bijgewerkt het aantal rijen.
>> En, laat ik hopen dat dit werkt.
OK.
Eens kijken of dit werkt.
Oh, perfect, geweldig.
OK.
Terwijl ik aan het opbouwen was mijn demo, sommige dingen zijn niet op een lijn, dus, bedankt voor
het applaus.
>> Yeah.
Dus, laten we eens kijken.
We maken deze negen gewoon om ervoor te alles - of eigenlijk, laten we gewoon
zet al deze tot openbaarmaking indicatoren.
En dan, wat ik wil jou ook zien,, was hoe ik elk van deze kunnen nemen
tabel rijen en hebben ze interageren -
oh.
Nee.
>> Oh.
Ook wil ik je laten zien -
hier kan ik de titel van leg mijn navigatie controller, toch?
Dus eigenlijk, zult u merken, zodra ik ingebedde deze visie controller binnen
van de navigatie-controller, zien we deze navigatiebalk aan de top van onze
storyboard vertegenwoordiging van een uitzicht controller.
En ja, dit geeft ons, als een visuele, soort, te begeleiden naar onze zichtbare scherm.
Dit gaat duidelijk zijn de navigatiebalk.
>> En wat ik snel wil doen, nu, wordt in een andere -
dus dit table view controller deed ik door die een van deze en slepen
hier, en dat is wat me toegestaan ​​om snel, echt, maak een tabelweergave
controller.
Als we de tijd wel, zult u zien dat, programmatisch, het is een
beetje lastig om een ​​tabel te maken view controller, want er
zijn een paar methoden die zijn nodig zijn voor u om, soort van, schrijven
uitgevoerd om voor de tabelweergave controller correct worden weergegeven.
>> Echter, ik wil gewoon laten zien, nu, een voorbeeld van waar, als ik deze nemen,
bijvoorbeeld -
Ik heb in een andere weergave controller zetten.
En nu, laten we zeggen dat ik wil controleren alt mijn allereerste blauwe
tabelrij naar hier.
En ik wil dit Blue bellen.
En dan -
laten we eens kijken.
Ik ben op het uitzicht nu, en ik kan veranderen de achtergrond blauw.
>> En dus, bericht, hier, deze drop-down menu geeft je ook een hiërarchie van alle
van deze objecten.
Dus een belangrijk ding om op te merken, hier, is dat al deze dingen, hier -
deze tabel View Controller, de tafel uitzicht, tafeltje, tabelweergave
cel - het zijn allemaal objecten, in code.
Dus, je weet wel, een label is nu onder de inhoud uitzicht, et cetera.
Zo verder en zo voort.
>> Dus, als we deze code uitvoert, we moet iets te zien -
laten we eens kijken of dit - ja.
Dus, daar gaan we.
Maar als we dat niet doen, geen van deze andere dingen werken.
Rechts?
Dus alleen deze werkt.
En, in het belang van de tijd, zal ik niet gaan in, weet je, het zetten
langs de andere.
En dit is het einde van, soort, storyboard -
wat ik wilde laten zien u voor het storyboard.
>> En, ik heb wel een uitgewerkt voorbeeld, eigenlijk, hier.
Dus, dit is de storyboard die ik eerder maakte.
Dus, zoals je kunt zien, dit was mijn navigatie controller.
Dan had ik mijn eerste mening controller, dan had ik mijn table view controller,
en toen had ik al deze -
dus eerder, ik deed iets heel anders.
Dus, excuseer die dingen.
Ik zal waarschijnlijk opruimen later voor Ik stuur het op naar de productie.
>> Maar als we dit uitvoeren, we zullen zien dat alle opties zijn
beschikbaar voor ons.
Behalve dat ik niet de achtergronden maakte die kleuren.
Dus, mooie eenvoudige applicatie.
>> Nu, laten we proberen aan te pakken dit programmatisch.
OK.
Dus, om dat te doen, we gaan gewoon om een ​​nieuwe Xcode project te starten.
We zullen het een lege applicatie nu te maken, omdat we niet willen hebben de
storyboard.
Dus, ik ben mezelf gewoon te beperken tot niet Gebruik een van de storyboard, en een
lege applicatie zal niet geef me een storyboard.
Dit is gewoon om te voorkomen dat me van vreemdgaan.
Laten we eens kijken.
Wacht.
Heb ik -
Ja.
OK.
>> Rechts.
Dus, hier, we blijven zitten met niets anders dan code.
Dus, laat me dit venster verplaatsen iets meer dan.
Rechts.
Zoals je hier kunt zien, de enige bestanden ons gegeven zijn AppDelegate.h en dot
m, en we hebben niet storyboard meer.
>> Dus als we dit uitvoeren, zijn we nog steeds naar naar het witte doek, God zij dank.
OK - wit scherm, maar niets anders.
En, hier is het belangrijkste onderdeel.
Dit is waar de actie gebeurt.
In de vorige versies, is er meestal geen code hier, maar de
storyboard bepaalt in wezen de code voor dit deel.
Ik zal niet in detail treden over de wijze waarop.
>> En wat we nu willen doen is, willen we hier in te gaan, en deze kleine ruimte
opnieuw begint het creëren van onze app.
Dus -
ja?
>> PUBLIEK: Zoom?
>> RHED SHI: Zoom.
Ja, natuurlijk.
OK.
Ik zal het typen, dus moet dit niet zo veel uit.
OK.
>> Dus, eerst, herinneren we ons wilden maken een navigatie controller, toch?
En ook, zoals je hier kunt zien, Xcode doet een heel groot werk van
self-vulling.
Dus, zoals je zult merken, de namen van alles is een stuk langer dan
gebruikelijk, maar Xcode vult het in voor je.
Dus ik kan gewoon op Enter.
>> Dus, ik wil een UI navigatie creëren controller wijzer, en ik kan het noemen
navigationController.
Nu, wat moet ik nu doen?
Na deze gelijk-teken, moet ik, ten eerste, maak het binnenste van het geheugen.
Dus ik ga doen NavigationController alloc -
dus, dit is vergelijkbaar met malloc, dat jullie gebruikt in C -
en dan, ik ga het init.
>> Dus, het is echt belangrijk dat elke object dat u maakt, wilt u
alloc en init het.
Dat gaat om het creëren en instantialize het in geheugen, en
nu kun je het gebruiken.
Oke?
Als u dat niet doet, uw object doet niet bestaan, en kom je in een bos
problemen.
>> En dan, ik wil maken een uitzicht controller, toch?
Dus, ik wil een UIViewController maken ster -
zo, alles is een pointer in Objective-C, en ik ga doen
iets dergelijks hier -
alloc, init.
OK.
>> En wat ik ga doen is, ik ben gaat - zo, herinneren wanneer we deden
de embed in de navigatie-controller?
Dit is hoe je het doet in de code.
Je gaat doen navigationController
pushViewController -
>> PUBLIEK: [onverstaanbaar].
Zal dit gebeuren voor ons, of -?
>> RHED SHI: Oh, ja.
Nee.
Het houdt me beter.
Nee, het zal werken voor u, ook.
Dus, dit zijn alle methoden.
Dus pushViewController is een werkwijze en Ook, meer specifiek, het is een
instantie methode van de UI navigatie-controller.
Want ik moest mijn UI navigatie creëren controller ster, en dan heb ik
kan dit pushViewController roep mijn specifiek geval van een UI navigatie
controller.
>> PUBLIEK: Moeten we de exacte doen woord, of is het al bestaan ​​voor het?
>> RHED SHI: Ja, want het is een methode.
Het is als een functie.
Het is net als printf.
Het is net als scanf.
Het is net als strcompare.
Behalve het weet wat je zou willen typen en merken dat het zal altijd
komen met dingen die wettelijk is toegestaan ​​voor u.
Dus, als er niets opduikt hier, dan is er iets mis.
>> Dus, pushViewController.
Zo, nu, ik wil duwen mijn nieuw gemaakte
UIViewController, en dan, geanimeerd -
misschien niet.
Omdat dit gaat worden de eerste view controller.
Ik bedoel, zelfs als ik te maken geanimeerde, het zal waarschijnlijk niet opdagen, omdat
het is het eerste scherm.
>> En vergeet niet de beugels.
Dus, herinner me hoe we de beugels?
En tussen haakjes, de object roept een methode -
dus ons doel is de navigatie controller, en de methode is een push
view controller geanimeerd.
En zie hoe het is in twee argumenten, en ze zijn van elkaar gescheiden door de, soort,
woorden, en een dubbele punt.
Dus, Objective-C probeert het leuk te maken en gemakkelijk voor u om te lezen hardop -
uw code - en hebben het semi, soort, zinvol.
>> Echter, deze norm te bereiken is niet genoeg.
Laat me uitzoomen nu.
Doen alleen dit is niet genoeg om krijgen wat we hebben gekregen om eerder.
Dus hier, zult u merken dat er eigenlijk niet van plan om elke vorm van zijn
bar, hier, toch?
Er is geen navigatiebalk, die een middel dat we nog steeds niet gekregen het.
>> En we kunnen testen dat uit, ook, door, misschien de achtergrondkleur van
ViewController, toch?
ViewController.background--
ah.
Dus, zie hoe ViewController hoefde niet een achtergrond kleur, hoewel ik
wilde het openen?
En dat komt omdat ViewController is een container voor het uitzicht.
Dus, het heeft een eigenschap, die heeft dan een achtergrondkleur.
>> En, kan ik het opgezet, een soort moeizaam, door te bellen naar de kleur
op de UIColor object.
Dus, bericht hier, redcolor is een methode.
Het is een klasse methode UIColor.
Omdat ik niet een te maken daadwerkelijke aanleg van een UIColor in orde
om de methode aan te roepen op.
Ik, gewoon, noemde het van het type-achtige naam.
Ik, net als, noemde het op int, als int had, als een werkwijze om het, bijvoorbeeld.
>> En dus, als we deze code uitvoert, zullen we merken dat de achtergrond is
eigenlijk niet rood.
Het is nog steeds wit.
En hoe we kunnen krijgen rond dat is, merken hoe er het self.window.
Dat is, net als de uiteindelijke container voor uw toepassing.
Het is de ultieme ding dat bevat alles op het scherm, voor
iPhone of iPad applicatie.
>> En, heel handig, self.window heeft deze eigenschap genaamd
rootViewController.
En dat gaat de wijzer te zijn de allereerste View Controller binnen
van uw app.
Dus, wat we willen doen hier, nu, is op gelijke onze NAVIGATIESET
controller.
Rechts?
Omdat, technisch, navigatie controller is onze allereerste zicht
controller.
Het houdt van een scala aan andere view controllers, en we dit geduwd
view controller in die array in de navigatie-controller.
>> Dus, wil je niet om dit te doen.
Dat zou je niet echt helpen.
Wil je dit doen, als je wilde doen een navigatie-controller, die het meest
van jullie zullen waarschijnlijk omdat je wilt aan, een soort van, een soort van,
zoals, het menu om terug te gaan naar of een homepage om terug te gaan, in plaats van een
leeg scherm.
Ja?
>> PUBLIEK: Is het ongemakkelijk voor u om in te zoomen op de -
>> RHED SHI: Yeah.
Dus, ja.
Dit is de code, en nu Laten we eens testen het uit.
>> Dus, daar gaan we.
Magic.
Dus, OK.
Dank u.
OK.
Dus nu, wat we willen doen is - dus, we soort beperkt, hier, toch?
We konden in potentie alles schrijven binnenkant van deze functie.
Maar, dat is niet hoe iOS ontwikkeling meestal werkt.
>> Dus, wat we gaan doen is, we zijn gaat een aantal nieuwe bestanden te maken.
Maar, meer in het bijzonder, we gaan maakt u een andere Objective-C klasse, of
een ander object -
klasse en objecten uitwisselbaar hier.
En, hier is hoe ik kon, in potentie, maak een andere klasse van U-controllers.
>> Dus, het is een sub-klasse, zoals u zult merken, hier, het is een sub-klasse van de
UI view controller, maar ik kan noem het een andere naam hier.
Ik kon deze CS50 noemen, kon ik bellen deze visie controller, kon ik bellen
dit blah view controller -
wat ik wil.
Dit is gewoon de naam voor de klasse.
Echter, gaat het belangrijk om omdat, in wezen, wat ik doe
hier is, ik ben het creëren een andere klasse naam.
Dus het gaat worden, zoals sommige soort type of een object.
Dus, moet het een beetje generiek.
Het gaat niet heel specifiek te zijn.
>> En ook, ik wil wel wijzen uit deze twee opties.
Omdat we doen alles wat binnen van code, soms is het een stuk makkelijker
om in een interface bestand, zodat Ik kan letterlijk slepen en neerzetten, als
we eerder deden met storyboard -
je weet wel, een label of een knop, of wat anders.
En zo, xibs zijn bestanden die u toelaten om die wel, en je hebt om het aansluiten
deze opvatting controller bestand.
>> Dus, ik ga bewust check deze niet.
Normaal zou ik dit controleren, en als ik alleen dit deed voor de iPhone of iPad, I
zou dit controleren en gewoon een voor, je weet wel, de iPhone of de iPad.
Maar omdat ik doe universele, ik ga later twee van die maken.
Dus, ik ga bewust vink deze.
>> Dit is ook heel belangrijk.
Heel vaak heb ik bugs gehad waar dit niet werd gecontroleerd.
En ja, natuurlijk, is dit bestand niet, soort van, zoals, opgenomen of ingevoerd
binnenkant van deze test map.
En dus, mijn code heeft absoluut geen idee van het bestaan ​​van dit bestand, en
dat veel pijn veroorzaakt en uren van debuggen.
Maar, maar zorg ervoor dat dit zo is gecontroleerd dat, je weet wel, het doel van deze
bestand voor deze toepassing.
>> OK.
Zo, nu hebben we twee nieuwe bestanden aangemaakt.
En deze bestanden zien er vrij leeg.
En, eigenlijk, laten we ook doorgaan op door het creëren van de xib bestanden.
Dus, eerder, was ik in de Cocoa Touch drop-down.
Nu, ik ga naar de gebruiker te gaan Interfaceaanraking, en zoals je kunt zien, ik
kan een storyboard maken.
>> Dus, zelfs ik begon met een leeg toepassing, kan ik nog steeds gebruik maken van een
storyboard.
Hoewel, het wordt lastig in termen van hoe u verbinding wilt maken
dat uw code.
Dus, ik zal niet gaan.
>> Maar, wat we willen doen nu is het creëren van een uitzicht.
En u kunt kiezen voor een iPhone of een iPad.
En typisch, om aan te geven verschil - als u een doet
universele toepassing -
je ofwel zet een underscore iPhone, of u kunt een twiddly PARP doen.
Het maakt eigenlijk niet uit.
Het is gewoon voor u om te differentiëren die uitzicht is voor welk apparaat.
>> En zo, kijk nu.
Ik heb een scherm dat ik kan werken.
En dus, bijvoorbeeld, ik kan een etiket aanbrengen hier, weet je, en ik kan ook zetten
andere knop hier.
Ik zal niet de moeite te veranderen de waarden hier.
>> Maar, wat is hier belangrijk is dat het bestand eigenaar -
zo, ik ben binnenkant van de iPhone uitzicht, iPhone xib bestand.
En in dit vaargebied of drop-down menu, ik wil naar de
eigenaar bestand.
En dit is het echt belangrijke stap hier.
Ik wil de klas uitzicht maken controller, zodat dit xib bestand
zal worden geassocieerd met mijn mening controller.
En alles wat ik doe in mijn mening controller programmatisch is
zal hier worden weergegeven op.
>> Dus, echter merken dat -
eigenlijk, laten we deze visie achtergrond blauw, bijvoorbeeld.
Of groen.
En dan, dus als je zult opmerken, terug in deze code, dit is waar we naar onze
navigatie-controller.
>> Hoewel we die stap, het is nog steeds rood, niet groen te zijn.
En er is een reden waarom.
Het is omdat, wanneer we inited onze mening controller, hier -
sorry, het is een beetje gek -
toen we inited onze mening controller hier, we inited het van het algemene type
UIViewController.
OK?
Dus we hebben niet eens doen het met deze klasse.
>> Dus denk eraan, dit is als een klasse nu.
Het kan worden gezien als een soort net als UIViewController is een type.
En om dat te gebruiken, wat we moeten doen is het importeren -
import ViewController -
en, zoals je kunt zien, is het autofills het voor mij.
Dus, ViewController -
en nu, hier, kan ik dit veranderen UIViewController te ViewController.
En nu, hier, ik kan veranderen dit ViewController.
>> Laten we opnieuw uitvoeren dit.
Het is nog steeds rood.
En de reden waarom het nog steeds rood is, omdat -
woah, wat daar gebeurde?
We wilden deze xib associëren bestand met het uitzicht controller.
Echter, om daadwerkelijk doen dat moeten we in te gaan.
En als we dat doen de init, willen we doen initWithNibName, en dan willen we
doen het op touw View_iPhone, bijvoorbeeld.
U kunt de bundel hier negeren.
>> En dit gaat toestaan ons, eigenlijk -
uh oh, er is een probleem.
Rechts.
>> En ja, er is een probleem, want in onze mening xib file, we hebben een label en
we hebben een knop.
Echter, hoewel we hebben aangesloten die twee, er is niets binnen van
ViewController.h of ViewController.m dat deze weerspiegelen
toetsen of deze labels.
Dus, moeten we die in zo schrijven eigenschappen van het uitzicht controller.
>> Dus, dit is hoe je verklaren een woning.
Het duurt in, meestal deze twee opties.
Voor de toepassing van ons en dit seminar, Ik zou zeggen dat, in het algemeen,
de meeste eigenschappen zijn nonatomic en behouden.
U kunt maximaal gelezen door Google zoeken, je weet wel, het verschil tussen
nonatomic en te behouden op, je weet, Google of zoiets.
En ik neem je mee naar, zoals, Stapel Overloop, waar mensen zullen hebben
antwoorden voor de verschillen tussen deze.
Maar voor nu, dat is wat we willen worden betrokken bij.
>> En we willen een UI label, ster maken, en we kunnen het noemen wat we willen.
We kunnen dit noemen, je weet wel, label.
En, we gaan een ander te creëren een voor de knop.
En vergeet niet om de asterisk, omdat we te maken hebben met pointers
vrijwel overal binnen van Objective-C.
>> Maar dat zal nog niet opgelost het probleem, zoals je hier kunt zien.
En de reden is dat, wanneer we willen een xib bestand etiket of een verbinding
toets om het programma of de header en implementatie file, we willen
voeg dit stukje code -
stopcontact.
Merk op dat het een sleutelwoord.
>> En, zodra ik klaar ben met het typen dat uit, moet deze hebben
twee cirkels, hier.
Meestal zijn ze niet ingevuld
Ik weet niet zeker waarom ze zijn.
Maar meestal zal u handmatig hebt sluit ze door naar deze kant van
de nutsbedrijven gebied.
>> En dus, nu, ik heb mijn label gekregen geselecteerd, en ik wil slepen deze nieuwe
verwijzingen stopcontact om eigenaar van mijn bestand, en klik vervolgens op Label.
Dus nu, eindelijk, dit label is verbonden met dit label.
En dit label is wat we gaan gebruiken programmatisch te veranderen zijn
tekst, het lettertype, de achtergrond kleur, et cetera.
>> Dus, waarom niet wij doen de hetzelfde voor de toets?
En zoals u zult merken, voor de knop, het is een beetje ingewikkelder.
Omdat, ik bedoel, je moet druk op een knop, dus het heeft een veel
van opties voor de manier waarop gebruikers kan drukken op een knop.
En dan zullen we later zien dat we kunnen dit verbinden aan onze
code te laten werken.
>> Dus, voor nu al willen we verbinden aan de eigenlijke knop
binnenkant van onze code.
Dus gaan we naar de nieuwe verwijzingen uitlaat, en doe dan de knop.
Nu, laten we opnieuw uitvoeren dit.
Uh oh.
OK.
Ik weet niet wat er hier aan de hand nu.
Whoa.
Slechts een ogenblik, hier.
>> Eigenlijk, waarom gaan we niet een kijken naar een ander voorbeeld in
het belang van de tijd.
OK.
Dus, hier is het beter voorbereid voorbeeld voor ViewController.
Zoals je hier kunt zien, heb ik begrepen de eigenschappen van het
label en de knop.
En dan dit stukje code hier -
dit IBAction -
was een verbinding met deze knop hier.
Dus zoals je hier kunt zien, Touch Binnen omhoog is verbonden met de selector
riep ingedrukt houden.
>> Dus kunnen we eigenlijk gaan door de beweging weer, hier, door het nemen van Touch Up
Binnen en slepen het naar File's Owner, en vervolgens
Klik op de knop gedrukt.
Nu, laten we lopen onze code.
Dus nu, op deze knop werkt nu en brengt ons naar de volgende pagina.
>> En, in termen van onze view controller, dit is het stukje code dat nam
zorg van de toets ingedrukt.
En het is belangrijk om hier op te merken, dat Ik heb een ander type weergave gecreëerd
controller heet een tafel view controller.
Dus, dit gelijkaardig aan rug in was storyboard, toen sleepte ik een van
deze table view controllers in het storyboard.
Ik ben het creëren van een ander
>> Pointer naar de tabelweergave controller, alloc en init-ing, en dan doen
zelf dot navigatie controller, duwen ViewController, deze nieuwe
ViewController.
En ik heb de animatie om ja te stellen, want nu de binnenkant van mijn app, en ik
willen eigenlijk zien de animatie gaan vanaf de homepage naar de tafel
view controller.
>> PUBLIEK: Heb je nog zorgen over garbage collection?
>> RHED SHI: Wat is dat?
Nee.
Dus, de vraag is, heb je om te werken met garbage collection?
Dus, Xcode 4 had als ARC, dat is automatische reference counting.
En ja, meestal als je een nieuwe start project, zou je controleren dat, omdat
niemand echt wil om te gaan met geheugen vrijmaken en zo.
Maar ik denk dat in Xcode 5, is er zelfs geen die optie op het nieuwe project.
Dus, het automatisch doet dat voor u.
Ja?
>> Publiek: Kunt u een exporteren PDF in je storyboard?
>> RHED SHI: Ja, zeker.
Dus, al deze zijn opgenomen in broncode, zodat jullie kunnen controleren
het werkelijke Xcode project voor.
Yeah?
>> Publiek: Maar, ik bedoel, kan ik afdrukken van een PDF met mijn storyboard?
Als ik wil gewoon exporteren beelden om iemand te tonen.
>> RHED SHI: Oh ja.
Ik denk, misschien, kun je gewoon neem een ​​schermafdruk.
Ja, en een scherm stuur ze geschoten of zoiets.
Yeah.
>> Dus, laten we eens kijken.
In het belang van de tijd, denk ik dat is alles wat ik kan vandaag dekken.
Maar, ik weet dat het eigenlijk gewoon nauwelijks de oppervlakte van iOS te raken
ontwikkeling.
Dus, aarzel dan niet om me te contacteren als u vragen over iOS
ontwikkeling.
En hopelijk zal ik in staat om schoon een deel van de code voor de bron
code-bestanden, zodat je wat je hebt echt mooie voorbeelden om mee te werken.
>> Anders dan dat, als je jongens gaan de CS50 Hackathon, kan ik of kan
er niet zijn, en ik kan helpen met een aantal iOS ontwikkeling, ook.
Dus, heel erg bedankt, jongens.