En introduksjon til Xamarin: Part 2

An Introduksjon til Xamarin: Part 2
12
Del
3
Del
Dette Cyber ​​mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av
Dette innlegget er en del av en serie som heter An Introduction to Xamarin.An Introduksjon til Xamarin. Part 1AN Introduksjon til Xamarin: Del 3
1. Komme i gang

Hvis du fulgte sammen med den første delen av denne opplæringen, så har du sannsynligvis allerede vet at installasjonen av Xamarin er ikke altfor komplisert. Xamarin har skapt en veldig fin installasjonsprogram som gjør mesteparten av kravene verifikasjon for deg og du trenger bare å sjekke et par bokser og klikk Neste
. Mens prosessen med å få Xamarin.iOS opp og kjører er ganske lik, vil det være noen forskjeller avhengig av hvilken plattform du utvikler på, OS X eller Windows.

Sjekkliste

Du vil raskt finne at prosessen med å lage iOS-applikasjoner i C # er litt mer involvert enn Android prosessen. Det er ikke fordi SDK er noe vanskeligere å forstå, men det er noen flere bevegelige deler. For å fullføre denne opplæringen, og være i stand til å lage iOS-applikasjoner i C #, du kommer til å trenge følgende:


    en Mac, uavhengig av om du bruker Visual Studio på en PC

    Xcode

    de nyeste iOS SDK

    de nyeste Xamarin.iOS SDK

    en Apple-utviklerkonto

    en PC, hvis du ønsker å utvikle ved hjelp av Visual Studio

    Hvis du kommer fra Windows siden av verden, kan du bli litt lei av det faktum at du trenger en Mac og Xcode. Realiteten er at uansett hva slags verktøy og språk du bruker til å lage iOS-applikasjonen, har bare Xcode evner til å skape den endelige iOS fri (IPA) og Xcode bare kjører på en Mac. Tro meg, jo før du godtar dette, jo raskere vil du være å nyte resten av prosessen.

    2. Installasjon

    Hvis du fulgte sammen med den første delen av denne opplæringen, så har du sannsynligvis allerede har en ganske god forståelse på installasjonen Xamarin. Trinnene involvert for å installere Xamarin.iOS er lik de Xamarin.Android. Men hvis du ikke har lest den forrige tutorial, deretter neste avsnitt vil dekke alle trinnene involvert

    Trinn 1:. Xcode og iOS SDK

    Uansett hvilken plattform du har tenkt å gjøre din utvikling på, er du nødt til å ha den nyeste versjonen av både Xcode og iOS SDK. Den primære grunnen til at du trenger Xcode er for byggeprosessen.

    Først hodet over til iOS Dev Center og opprette en konto hvis du ikke allerede har en. Du kan omgå dette trinnet og gå rett til Mac App Store for å laste ned Xcode, men hvis du har planer om å drive din app på en fysisk enhet så du kommer til å trenge en utviklerkonto uansett, så du kan like godt gjøre det nå.

    Når den er laget, logge på og gå til nedlastingssiden for å få den nyeste versjonen av Xcode. Det vil ta deg til Mac App Store for å fullføre nedlastingen og installasjonen. Dette får du ikke bare den nyeste versjonen av Xcode, men det vil også laste ned og installere den nyeste versjonen av iOS SDK. Søt.

    Denne opplæringen vil ikke gå i detalj på klargjøringsprosess og distribusjon av søknaden din til en enhet. Det er andre artikler om Tuts + som dekker dette emnet samt dokumentasjon på Xamarin nettstedet hvis du ønsker å gjøre det

    Trinn 2:. Xamarin.iOS og Xamarin Studio

    Du kan drepe to- fluer i en smekk ved å gå over til Xamarin nedlastingssiden, opprette en konto hvis du ikke allerede har en, og klikke på Last ned Xamarin
    . Dette vil laste ned Xamarin installatør som vil ta seg av alle forutsetning kontroll, laste ned og installere for deg. Dobbeltklikk på .dmg
    filen for å starte installasjonen.

    Når installasjonsprogrammet starter, kan du velge stykker som du ønsker å installere. Du trenger bare den Xamarin.iOS alternativ for denne opplæringen, men gjerne installere så mye eller så lite som du ønsker.

    Denne skjermen kan se litt annerledes på din maskin avhengig av operativsystemet du kjører samt hvilke produkter du kanskje eller kanskje ikke allerede har installert. Som nevnt før, vil du fortsatt trenger å fullføre denne prosessen på en Mac hvis du gjør din utvikling på en PC. En del av installasjonen av Xamarin.iOS er Xamarin Bygg Host Hotell som lar deg koble til Mac over nettverket fra en PC og opprette IPA
    pakke som kjører på iOS simulator eller en fysisk enhet.

    Når alle pakkene er lastet ned og installert, hvis du gjør din utvikling på en Mac, kan du starte opp Xamarin Studio. Hvis du kommer til å gjøre din utvikling på en PC, så du må følge den samme prosessen installasjonen for å få alle nødvendige Xamarin.iOS biter samt Xamarin plugin for Visual Studio på din Windows-maskin.
    < p> For å gjøre dette selv, må du ha minst Business Edition av Xamarin. Du kan få alt du trenger gjennom 30-dagers gratis prøveversjon av Xamarin hvis du ikke allerede har det. Hvis du ikke har tilgang til gratis prøveversjon eller hele programvaren, må du bruke Xamarin Studio på Mac.

    3. Tok en enkel applikasjon

    Den beste måten å virkelig lære en ny teknologi av noe slag er å grave i og skape noe fra bunnen av. Du kan bygge dette programmet i enten IDE (Integrated Development Environment), er alt du trenger å gjøre er å følge sammen med eksempelkode.

    I moderne tid av iOS utvikling, har du tre alternativer når det gjelder å skape programmets brukergrensesnitt.


      lage individuelle synspunkter og koble dem sammen i koden

      bruke Storyboards, som er en mer grafisk versjon av det første alternativet

      opprette Brukergrensesnittet i koden

      Mens den første og andre alternativer er de mer populære alternativer, vi kommer til å lage prøven programmet som bruker det tredje alternativet. Det er viktig å ikke bare forstå hvordan du gjør det, men også for å forstå hvorfor de grafiske verktøyene ble opprettet

      Trinn 1:. Ved hjelp av Visual Studio på Windows

      Hvis du bruker Visual Studio på en Windows-maskin for å følge denne opplæringen, når du starter prosessen med å lage prosjektet du vil kjøre inn i en dialog som ber deg koble til en Xamarin
      Bygg Host
      . Dette er en ganske grei prosess der du trenger bare å følge instruksjonene på skjermene. Det vil se omtrent slik ut.

      Den første dialogen du vil se er en instruksjons vindu som beskriver hvordan du starter Xamarin Bygg Host
      på Mac ved hjelp av Spotlight Anmeldelser .

      På din Mac, åpner du Xamarin Bygg Host Hotell og klikk på Pair
      knappen. Dette vil gi deg en PIN
      .

      Bytt tilbake til Visual Studio og klikk Fortsett

      knappen. Hvis din Mac er konfigurert riktig, bør det dukke opp på listen som en mulig Xamarin

      Bygg Hosts
      .

      Klikk på Xamarin Bygg Host
      system for valg og velge Koble
      .

      Visual Studio vil da be om PIN
      . Når du har kommet inn i PIN Hotell og paret Visual Studio med Xamarin Bygg Host
      , vil du være i stand til å følge med resten av denne opplæringen, ikke bare skrive en iOS søknad C #, men også gjør det ved hjelp av Visual Studio. Awesome.

      Hvis du noen gang trenger å koble denne Xamarin Bygg Host
      til et annet system, kan du klikke på Slett sammenkobling
      knappen. Etter å ha gjort dette, må du gjenta prosessen for det nye systemet.

      Heldigvis, vil Visual Studio huske Xamarin Bygg Host
      du tidligere koblet med. Hvis du unpair
      Visual Studio fra Xamarin Bygg Host ,
      neste gang du prøver å skrive en iOS-applikasjon i Visual Studio, vil det be om PIN
      for samme build vert. For å søke etter en annen vert i Visual Studio, klikker du på Alternativer
      fra Verktøy
      menyen og velg Xamarin > iOS Settings
      . Der vil du finne en knapp som sier Finn Mac Bygg Host
      . Dette vil vise dialogboksen til å velge en annen Xamarin Bygg Host

      Trinn 2:. Opprette prosjekt

      Start med å åpne din IDE valg og velge File > New > Løsning
      eller Prosjekt
      avhengig av IDE du bruker. Fra Ny løsning
      dialogboksen velger du C # > iOS > iPhone
      fra trevisningen og velg Tom Prosjekt
      som mal. Dette vil gi deg grunnleggende struktur for søknaden din uten alle klokkene og plystre kommer i veien. Dette er hva det vil se ut i Xamarin Studio 5.0.

      Du kan gi din løsning det navnet du ønsker, men hvis du er interessert i å følge med meg, deretter navnet Feeder.
      Når løsningen /prosjektstrukturen er opprettet, vil du se en rekke filer som er verdt å zoome inn on:


        AppDelegate.cs

        Entitlements.plist

        Info.plist

        Main.cs

        AppDelegate.cs

        In verden av iOS, er AppDelegate vannledningen på søknaden fra enheten. Den brukes til å håndtere eventuelle systemhendelser som er nødvendige. Søknaden delegere holder også en henvisning til vinduet objektet. Hvert iOS applikasjonen har et vindu, en forekomst av UIWindow klassen, som brukes til å trekke brukergrensesnittet i programmet. Den AppDelegate er ansvarlig for å abonnere på noen systemhendelser knyttet til søknaden din, for eksempel, når programmet er ferdig lansering eller når den blir sagt opp av operativsystemet.

        Entitlements.plist

        Dette fil er lik tillatelser delen av AndroidManifest. Den angir tillatelsene at søknaden samt teknologier det er lov til å bruke. Noen av de vanligste teknologiene inkluderer iCloud, PassKit, Push Notifications, etc. Du kan tenke på en plist
        eller eiendom liste
        filen som en ordbok med nøkkelverdipar som lagrer egenskaper brukt av søknaden din.

        Info.plist

        I likhet med Entitlements.plist filen, Info.plist fil lagrer nøkkelverdipar. Forskjellen er at denne filen inneholder søknaden informasjon som programnavnet, ikoner, lansere bilder og mer.

        Main.cs

        Denne filen inneholder den viktigste inngangspunkt for søknaden din. Den viktigste metoden skaper en ny Xamarin.iOS søknad og angir AppDelegate som vil håndtere hendelsene sendt av operativsystemet

        Trinn 3:. Opprette Model

        Det første trinnet i å lage prøven Søknaden er å ha et objekt som lagrer informasjonen du vil vise til brukeren. I dette tilfellet ønsker du å lagre informasjon om artikler som vises på Xamarin RSS bloggen feed. Du kan lagre mer data enn det eksempelet, men dette vil komme i gang. Først oppretter en ny klasse og name it RssItem. Definisjonen av klassen skal se slik ut:
        public class RssItem {public string Tittel {får; sett; } Public string Creator {får; sett; } Public Datetime pubDate {får; sett; } Public string Link {får; sett; }}

        Klassen er ganske grei:

        tittel, en streng som representerer tittelen på artikkelen

        Creator, en streng som representerer forfatteren av artikkelen
        < li> pubDate, en Datetime representerer artikkelens publiseringsdato

        Link, en streng som representerer en direkte link til artikkelen

        Med denne enkle modellen sett, vi kan nå skifte fokus til programmets brukergrensesnitt og kjerne implementering

        Trinn 4:. Model-View-Controller

        Når du oppretter iOS-applikasjoner, har du ikke annet valg enn å følge den Model-View-Controller
        paradigme. Selv om du ikke forstår hva det vil si innen utgangen av prosessen vil du være en MVC soldat plugging bort på iOS-applikasjoner uten å tenke på det. På et høyt nivå, er MVC mønsteret består av, du gjettet det, tre deler:

        Model

        Du kan tenke på det Model
        i MVC mønsteret som de viktigste komponentene (eller klasser) i programmet som inneholder viktige forretningsdata /logikk. I ditt tilfelle, er modellen den RssItem klassen som du nettopp opprettet.

        Vis

        Vis
        i programmet er den faktiske visuell representasjon av data (eller modellen ) på enheten. Dette kan komme i form av en liste over data eller noen tilpassede komponenter som representerer de data som finnes i ditt Model
        .

        I dette eksempelet, utsikten lag kommer til å bestå av en liste av RssItem objekter som har blitt lastet ned fra nevnte feed. Ideelt sett Model Hotell og Vis
        er ikke klar over hverandre og bør ikke kommuniserer direkte. De to bitene i puslespillet må bli holdt sammen med en slags lim.

        Controller

        Limet som binder Model Hotell og Vis Anmeldelser sammen, er Controller
        . I en verden av iOS utvikling vil du vanligvis se en kontroller i form av en ViewController klasse eller underklasse. Denne klassen har jobben med å styre samspillet mellom Model Hotell og Vis
        . Samspillet kan komme i form av brukeren berøre noen del av den Vis Hotell og oppdaterer Model
        basert på at samhandling eller noen del av den Model
        blir oppdatert av en annen prosess bak kulissene og oppdatering av Vis
        basert på at endringen.

        For å implementere MVC mønsteret i søknaden din, må du opprette en Vis
        og en Controller
        . Legg til et nytt element i prosjektet ved å høyreklikke på prosjektet ditt og velge Legg til > New File plakater (eller Vare
        avhengig IDE). I New File Dialog
        , må du velge iOS
        gruppen og iPhone View Controller
        som type og gi den et navn FeedItem.

        Denne prosessen kommer til å legge deg nye filer til prosjektet. Alle disse filene brukes til andre formål, men sammen, de kommer til å bygge din liste syn som kommer til å presentere de artiklene i Xamarin bloggen til brukeren.

        FeedItemCell.cs

        Den FeedItemCell er en klasse som beskriver den enkeltes celler (eller rader) innenfor listevisning. Denne klassen vil tillate deg å endre utseendet og layout, samt funksjonaliteten til alle cellene i listen for å gi det et eget utseende.

        FeedItemSource.cs

        Kilden til data som visualiseres i listen over FeedItemCell gjenstander kommer i form av FeedItemSource klassen. Denne kilden klassen ikke bare inneholder dataene vil bli visualisert på listen din, men også inneholder informasjon om listen herunder grupperinger, topp- og bunntekst, og element teller. Den håndterer også samspillet med elementene når en bruker berører en av dem.

        FeedItemController.cs

        Nok en gang er selve kontrolleren limet som binder alt sammen. Den FeedItemController klassen er beholderen klasse som vil skape listevisning for brukeren å faktisk se på skjermen. Innenfor denne klassen vil du trenger for å få de nødvendige data som skal vises på skjermen, klargjøre en ny FeedItemSource med at data, og passerer kilden til kontrolleren

        Trinn 5:. Komme ned til kode
        < p> Nå som du har alle bitene i puslespillet ferdig, er det på tide å sette dem sammen. La oss begynne å jobbe seg gjennom de tre filene som du nettopp opprettet, og få dem klar for våre data. Først, ta en titt på FeedItemCell klassen og endre den til å se slik ut
        navne Feeder {public class FeedItemCell. UITableViewCell {public static skrivebeskyttet NSString Key = new NSString ("FeedItemCell"); offentlig FeedItemCell (): base (UITableViewCellStyle.Subtitle, Key) {//TODO: legge subviews til ContentView, sette ulike farger osv TextLabel.Text = "TextLabel"; }}}

        Det er ikke mye å gå på i denne klassen, og det er bare en liten endring som du skal gjøre. Denne klassen kommer til å arve fra UITableViewCell. All denne klassen inneholder er en konstruktør som kaller basen konstruktør bestått i to biter av data.

      1. Den første er stilen av cellen. I dette eksempelet bruker vi en innebygd stil kjenner som Subtitle stil. Denne modellen gjør det mulig for to tekstfeltene i cellen, en på toppen av den andre.
      2. Den andre parameteren for basis konstruktøren er nøkkelen som skal representere denne type celle i listen. I dette tilfellet vil hver celle i listen bli referert til av FeedItemCell nøkkelen.

        Den neste brikken i puslespillet er FeedItemSource klasse. Erstatte innholdet i standard gjennomføring med følgende:
        navnerom Feeder {public class FeedItemSource: UITableViewSource {private List < RssItem > _items; offentlig FeedItemSource (List < RssItem > elementer) {_items = elementer; } Public override int NumberOfSections (UITableView Tableview) {//TODO: returnere det faktiske antall seksjoner tilbake 1; } Public override int RowsInSection (UITableView tabellvisning, int seksjon) {//TODO: returnere det faktiske antall elementer i § retur _items.Count den; } Public override UITableViewCell GetCell (UITableView Tableview, NSIndexPath indexPath) {var celle = tableView.DequeueReusableCell (FeedItemCell.Key) som FeedItemCell; if (celle == null) celle = new FeedItemCell (); //TODO: befolke cellen med riktige data basert på indexPath cell.TextLabel.Text = _items [indexPath.Row] .Title; cell.DetailTextLabel.Text = string.Format ("{0} på {1}", _items [indexPath.Row] .Creator, _items [indexPath.Row] .PubDate); returnere cellen; } Public override void RowSelected (UITableView Tableview, NSIndexPath indexPath) {var element = _items [indexPath.Row]; Var url = new NSUrl (item.Link); UIApplication.SharedApplication.OpenUrl (url); }}}

        La oss bryte det ned for å få en bedre forståelse av hva som skjer. Kilden trenger data som skal vises i listen, og som vanligvis håndteres i konstruktøren
        private List <. RssItem > _items, offentlige FeedItemSource (Liste < RssItem > elementer) {_items = eks;}

        Kildedataene i listen kommer til å bli levert av en liste over dine modellklasser, RssItem. Denne listen over elementer er gått inn i konstruktør av FeedItemSource klassen og holdt på til i en privat variabel _items.
        offentlig overstyring int NumberOfSections (UITableView Tableview) {//TODO: returnere det faktiske antall seksjoner returnere en;}

        Når du bruker lister på en iOS-programmet, har du muligheten til å gruppere celler i seksjoner. Den NumberOfSections metoden returnerer hvor mange deler eller grupper finnes i listen. I denne søknaden, er det en enkelt gruppe som inneholder alle elementene, noe som betyr at metoden returnerer 1.
        offentlig overstyring int RowsInSection (UITableView tabellvisning, int seksjon) {//TODO: returnere det faktiske antallet elementer i § retur _items.Count;}

        Med antall deler av listen definert, må utsikten bordet for å vite hvor mange elementer er funnet i hver seksjon. Du har allerede passert listen over RssItem gjenstander som kommer til å dukke opp i listen i konstruktøren og lagret den i de private variable _items, så alt du trenger å gjøre er å gå tilbake _items.Count.
        Offentlig overstyring UITableViewCell GetCell ( UITableView Tableview, NSIndexPath indexPath) {var celle = tableView.DequeueReusableCell (FeedItemCell.Key) som FeedItemCell; if (celle == null) celle = new FeedItemCell (); //TODO: befolke cellen med riktige data basert på indexPath cell.TextLabel.Text = _items [indexPath.Row] .Title; cell.DetailTextLabel.Text = string.Format ("{0} på {1}", _items [indexPath.Row] .Creator, _items [indexPath.Row] .PubDate); returnere celle;}

        Den neste, og kanskje den viktigste, del av kilde gjennomføringen er GetCell metoden. Formålet med denne metoden er å fremstille og bruke de celler som er til stede i listen
        Var celle = tableView.DequeueReusableCell (FeedItemCell.Key) som FeedItemCell,. Hvis (celle == null) celle = new FeedItemCell ();

        Den første linjen kaller DequeueReusableCell metoden bestått i et argument av nøkkelen til en celle som den ser etter. En av ideene bak en liste er at hvis kildedataene inneholder flere elementer enn det er plass til i det synlige delen av skjermen, er det ingen grunn til å stadig skape disse cellene og ta opp systemressurser.

        I stedet når en celle går off-screen, er det ikke bare kastes. Det er plassert i en pool av andre celler for senere bruk. Senere, når en celle med en bestemt nøkkel er nødvendig, kontrollerer systemet først pool av gjenbrukbare celler for celler med denne nøkkelen. Hvis ingen gjenbruk celle kunne bli funnet, er cellen variabel null, og en ny FeedItemCell opprettes
        cell.TextLabel.Text = _items [indexPath.Row] .Title;. Cell.DetailTextLabel.Text = string.Format (" {0} på {1} ", _items [indexPath.Row] .Creator, _items [indexPath.Row] .PubDate); returnere cellen;

        Hvis en celle er klar til å brukes, må det fylles med data. Hvordan du gjør dette er helt opp til deg. I vårt eksempel er angitt vi at hver celle er av den typen tekst, noe som betyr at den har to etiketter. Den øverste etikett er referert til som den TextLabel. I vårt eksempel er det befolket med tittelen eiendom som tilhører et RssItem objekt. For å hente riktig RssItem objekt, gjør vi bruk av indexPath.Row eiendommen. Bunnen etikett er referert til som den DetailTextLabel og er befolket med en sammensetning av Skaperen og pubDate egenskaper tilsvarende RssItem objektet.
        Public override void RowSelected (UITableView Tableview, NSIndexPath indexPath) {var element = _items [indexPath.Row ]; Var url = new NSUrl (item.Link); UIApplication.SharedApplication.OpenUrl (url);}

        Den endelige overstyring metode innenfor FeedItemSource klassen er RowSelected. Denne metoden kalles hver gang en celle i listen tappes av brukeren. I dette tilfelle, når en bruker berører en celle, kan hente den tilsvarende RssItem forekomst ved hjelp av indexPath.Row egenskapen. Du kan deretter opprette en ny NSUrl objekt med Link eiendommen av RssItem objektet og pass på at NSUrl til UIApplication.SharedApplication.OpenUrl metoden. Denne metoden vil avgjøre hvilket program på enheten eller emulator er best egnet til å håndtere url. I vårt eksempel, fordi url representerer en web-adresse, den innebygde nettleseren på enheten eller simulatoren vil behandle forespørselen.

        Det er på tide å vende oppmerksomheten mot den FeedItemController klassen
        . Navnerom Feeder {public class FeedItemController: UITableViewController {private List < RssItem > _items; offentlig FeedItemController (): base () {bruker (var klient = new HttpClient ()) {var xmlFeed = client.GetStringAsync ("http://blog.xamarin.com/feed").Result; Var doc = XDocument.Parse (xmlFeed); XNamespace dc = "http://purl.org/dc/elements/1.1/"; _items = (fra element i doc.Descendants ("element") velge ny RssItem {Tittel = item.Element ("title"). Verdi, pubDate = DateTime.Parse (item.Element ("pubDate"). verdi), Creator . = item.Element (dc + "skaperen") verdi, Link = item.Element ("link") Verdi}) tolist ()..; }} Public override void DidReceiveMemoryWarning () {//utgivelser visningen, hvis den ikke har en Super. base.DidReceiveMemoryWarning (); //Slipp noen bufrede data, bilder, etc som ikke er i bruk. } Public async ride void viewDidLoad () {base.ViewDidLoad (); //Registrer Tableview datakilde TableView.Source = new FeedItemSource (_items); }}}

        Før du kan lykkes kompilere denne koden, må du legge til en referanse til System.Xml.Linq forsamlingen. Du kan gjøre dette ved å høyreklikke på Referanser
        i prosjektet og velge enten Legg Reference
        eller Rediger Referanser
        , avhengig av IDE du bruker. Du må også legge ved hjelp System.Xml.Linq; uttalelse til toppen av klassen filen.
        privat List < RssItem > _items, offentlige FeedItemController (): base () {bruker (var klient = new HttpClient ()) {var xmlFeed = client.GetStringAsync ("http://blog.xamarin.com/feed").Result; Var doc = XDocument.Parse (xmlFeed); XNamespace dc = "http://purl.org/dc/elements/1.1/"; _items = (fra element i doc.Descendants ("element") velge ny RssItem {Tittel = item.Element ("title"). Verdi, pubDate = DateTime.Parse (item.Element ("pubDate"). verdi), Creator . = item.Element (dc + "skaperen") verdi, Link = item.Element ("link") Verdi}) tolist ()..; }}

        Dette er hvor all logikk for å hente data fra Xamarin RSS blogg fôr liv. Hvis du har fulgt med i Android-versjonen av Introduksjon til Xamarin tutorial, sannsynligvis dette ser kjent ut. Det er fordi det er nøyaktig samme kode.

        Du starter ved å opprette en HttpClient og bruke GetStringAsync metode for å laste ned data som finnes på den vedlagte url og bruke Parse metoden på XDocument klassen til å forberede data for noen LINQ-to-Xml magi. Når du har XDocument objektet, kan du spørre det å få verdiene av alle barn element elementene som finnes i RSS-feed og initial forekomster av RssItem klassen og lagre dem i de private _items variable.

        Etter konstruktør, er det bare to fremgangsmåter som er tilstede i gjennomføringen. Disse metodene er DidReceiveMemoryWarning og viewDidLoad. Du trenger ikke å gjøre noe med den første metoden, men som de fleste ting det lønner seg å i det minste vite hva det er for.

        DidReceiveMemoryWarning metoden kalles på noe punkt i gjennomføringen av denne klassen når enheten eller simulator har bestemt at søknaden din kan være å ta opp for mye minne og kan muligens bli avsluttet. Dette er din mulighet til å frigi noen minneintensive ressurser til å holde det skjer. . Som navnet tilsier, den viewDidLoad metoden startes når utsikten er lastet og før det er presentert o brukeren
        offentlig async ride void viewDidLoad () {base.ViewDidLoad (); //Registrer Tableview datakilde TableView.Source = new FeedItemSource (_items);}

        I denne metoden, kaller vi basismetoden viewDidLoad og opprette en ny forekomst av FeedItemSource klassen, tildele den til TableView.Source eiendom . Når dette er gjort, vil brukeren kunne se dataene du hentet fra RSS-feed og plassert i listevisning. Hvis du er forvirret der Tableview eiendom kommer fra, det er arvet fra FeedItemController base klasse, UITableViewController. Denne basen klassen gir en referanse til selve bordet syn som er i visningen kontrolleren syn

        Trinn 6:. Putting It All Together

        Du har nå alle de nødvendige brikkene til å presentere en liste over artikler til brukeren. Det eneste problemet er at ingen av det er å dukke opp enda. Årsaken er at søknaden din ikke har fått beskjed om å bruke FeedItemController vise dataene til brukeren. For å gjøre dette, må du gjøre en liten modifikasjon til din AppDelegate klassen.

        AppDelegate klassen inneholder i dag en metode, FinishedLaunching. Denne metoden kalles på søknaden delegat av operativsystemet. For å gjøre alt arbeidet, må vi gjøre en liten modifikasjon til gjennomføring.
        Offentlig overstyring bool FinishedLaunching (UIApplication app, NSDictionary alternativer) {//oppretter et nytt vindu eksempel basert på skjermstørrelse vindu = new UIWindow (UIScreen. MainScreen.Bounds); Var controller = new FeedItemController (); controller.View.BackgroundColor = UIColor.White; controller.Title = "Xamarin Feeds"; Var navController = new UINavigationController (kontroller); window.RootViewController = navController; //Gjøre vinduet synlig window.MakeKeyAndVisible (); return true;}

        De fire første linjene er ganske standard. Du oppretter en ny forekomst av UIWindow klasse, som vil inneholde programmets brukergrensesnitt. Du kan deretter opprette en ny forekomst av FeedItemController klassen og sette det er bakgrunnsfarge eiendom til UIColor.White og gi den en tittel.

        De neste to linjene kan virke litt forvirrende. Du oppretter en ny forekomst av en UINavigationController, pass til den FeedItemController eksempel i konstruktøren, sett RootViewController eiendom vinduet objektet til UINavigationController, og kaller MakeKeyAndVisible. Hvorfor trenger vi å gå gjennom dette stresset? Hvorfor kan vi ikke sette RootViewController til FeedItemController og kaller det en dag? Du kan gjøre det, og søknaden vil fremdeles fungere. Men hvis du gjør det, vil statuslinjen øverst på skjermen vises på toppen av listen, og vil se dårlig. Legge kontrolleren til en UINavigationController er et lite triks som oppnår to ting:

        det legger plass mellom toppen av kontroll og toppen av skjermen

        gjør det egenskapen Title av kontrolleren synlig

        Det er på tide å bygge og drive din søknad i iOS Simulator. Resultatet bør ligne på skjermbildet nedenfor.

        Konklusjon

        Og det du har det. Du har nettopp opprettet en fullt funksjonell iOS program som bruker noe annet enn C # og Xamarin. Det er en ganske imponerende bragd hvis du tenker over det.

        Jeg håper dette gir deg selvtillit og kjøre til å dykke dypere inn i riket av Xamarin og dørene at det åpner for deg. Herfra kan du lære om å lage Android-programmer i C # med Xamarin hvis du ikke allerede har. Hvis du har, kan du utforske hvordan du kan lage cross-platform applikasjoner som kan gjenbruke de fleste en eneste kodebasen og kjøres på både iOS og Android-enheter. Det er det jeg skal vise deg i neste tutorial

        Neste trinn:. Se Course

        Hvis du ønsker å lære mer om Xamarin, så sjekk ut vår kurs Building Multi-Platform Apps med C # i Xamarin.

        I kurset vil du lære hvordan du oppretter en kryssplattform søknad fra en enkelt kodebasen som vil kjøre på tre distinkt forskjellige plattformer: iOS, Android og Windows Phone 8. Tror det kan ikke være gjort? På bare en liten stund vil du gjøre det selv. La oss få til å fungere.

        Du kan ta med en gang med en helt gratis
        14 dagers prøveversjon av en Tuts + abonnement. Ta en titt på våre abonnement alternativer å komme i gang, eller, hvis du er like interessert i dette kurset, kan du kjøpe det individuelt for $ 15! Her er en forhåndsvisning for å komme i gang: