App maken: ook jij kunt het leren!

 

de iOS Academie Forums

Forums - App-ontwikkeling - Swift en iOS: Data uit Static Table naar label

Roy  Roy heeft nog geen Studiekaart. Klokje17 mei 2015, 11:55
Avatar
Avatar
Berichten:17


Ik ben aan het stoeien met een statische tabel. Ik wil de data halen uit de rij waar op geklikt is en deze tonen in een label in een andere viewcontroller waar je na het klikken op de rij naar toe gaat. Nu vind ik vrij veel over het halen van data uit een dynamische tabel, maar bijna niets over data halen uit een statische tabel. Juist data uit een statische tabel lijkt mij vrij eenvoudig, maar ik kom er niet uit. Iemand die mij kan helpen? 

Reageer


Cor  Cor heeft nog geen Studiekaart. Klokje17 mei 2015, 16:09
Avatar
Avatar
Berichten:44


Hallo Roy,

Zoiets heb ik ik net gemaakt.

De statische tabel heb ik gemaakt in de vorm van een dictionary in een plist file:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>0000</key>
<string>0</string>
<key>0001</key>
<string>+3</string>
<key>0002</key>
<string>0</string>
<key>0003</key>
<string>+5</string>
<key>0004</key>
<string>0</string>

enz...

</dict>

</plist>

Daarna heb ik een functie gemaskt die de file leest:

  func readStaticTable()

  {
    if let path = NSBundle.mainBundle().pathForResource("staticTable", ofType: "plist")
    {
      if let ourNSDictionary = NSDictionary(contentsOfFile: path)
      {
        for iRow in 0..<nrRows
        {
          for iCol in 0..<nrCols
          {
            let key = NSString(format: "%02d%02d", iRow, iCol) as String

            if let fieldValue = ourNSDictionary.valueForKey(key) as? String
            {

Hier heb je de waarde te pakken en kan je er mee doen wat je wil. Succes.

Groetjes,

Cor

 

Reageer

Goed advies! 1 persoon vindt dit goed advies.

Roy  Roy heeft nog geen Studiekaart. Klokje18 mei 2015, 18:24
Avatar
Avatar
Berichten:17


Hey Cor,

 

Heel erg bedankt voor jouw hulp. Het enige waarmee ik blijf zitten is dat ik mijn tabel niet wil/kan vullen met een plist. Ik heb bij elke regel een afbeelding en onder de tekst moet ook nog wat extra info komen. Het is voor mij dus veel makkelijker om het gewoon in het storyboard in te vullen dan in te lezen uit een file. Als ik het goed begrijp haal ik bij jouw methode de waarde alsnog op uit een file. Ik wil graag echt te regel uit de tabel uitlezen. Die waarde dan in een variabele stoppen en die variabele doorgeven aan de volgende view. Is jouw code hier op aan te passen?

 

Roy

Reageer

Leuk! 1 persoon vindt vindt dit leuk.

AppChanger  Laurens heeft nog geen Studiekaart. Klokje18 mei 2015, 20:38
Avatar
Avatar
Berichten:301
Fans:13


Hallo Roy,

De code die Cor hierboven gaf was enkel om de info uit de plist op te vragen. 

Als je geen plist (lijst met data)wilt gebruiken, moet je alle tekst direct in je storybord zetten. 

Als je dan naar een nieuwe view wil gaan, gebruik je best volgende regel:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

let dataVoorNieuweView = segue.destinationViewController as! DeNieuweViewController

let dataVoorOverTeHevelen =  "De over te hevelen data."

dataVoorNieuweView.variabledieindenieuweviewcontrollerclassStaatgedefineerd = dataVoorOverTeHevelen

}

 

Hopelijk begrijp je het zo, anders leg ik het wel aan de hand van een voorbeeld uit.

Indien je graag hebt dat ik deze methode in je project toepas, moet je eens je project in Dropbox zetten of zo. 

Als je dan de link naar het project hier post help k zo snel als mogelijk.

 

Met vriendelijke groeten,

Laurens

Reageer

Goed advies! 1 persoon vindt dit goed advies.

Roy  Roy heeft nog geen Studiekaart. Klokje22 mei 2015, 10:32
Avatar
Avatar
Berichten:17


Bedankt voor jullie advies. Helaas ben ik echt net begonnen met programeren en kom er nog niet uit. De methode die Cor gebruikt is helemaal nieuw voor mij, dus het lukt mij nog niet om de waarde uit de tabel te halen. Ik zou het zelf proberen met didSelectRowAtIndexPath, maar dat lukt mij ook niet. Heel fijn als je mij zou willen helpen. Ik bouw mijn app in delen op om ervoor te zorgen dat elk deel steeds goed werkt. Dan wil ik alles aan elkaar gaan koppelen. Ik stuur jou een link van het zip bestand waar ik niet uit kom. Alvast bedankt voor jouw hulp.

 

Roy

https://www.dropbox.com/sh/2iyef2ycav2lb8y/AABzHw4-H4jiEDkwmhZrxWDba?dl=0

Reageer


AppChanger  Laurens heeft nog geen Studiekaart. Klokje22 mei 2015, 20:11
Avatar
Avatar
Berichten:301
Fans:13


Hallo Roy,

Ik heb snel eens je app aangepast, ik hoop dat dit is wat je wilt bereiken.

https://www.dropbox.com/sh/kwdpqqtmlxuyyx5/AAAIuRJvUTe9vj5d8Uoj3v8Ha?dl=0

Indien je nog vragen of opmerkingen hebt, hoor ik het graag.

Met vriendelijke groeten,

Laurens

Reageer

Goed advies! 1 persoon vindt dit goed advies.

Roy  Roy heeft nog geen Studiekaart. Klokje23 mei 2015, 15:29
Avatar
Avatar
Berichten:17


Hey Laurens,

 

Bedankt voor jouw input. Ik wilde het eerst voor elkaar krijgen in een statische tabel, maar zag na het verder gaan met jouw bestand dat ik het ook zou kunnen doen met een dynamische tabel. Nu begin ik in de app met een statische tabel en ga ik daarna verder met dynamische tabellen.

 

Dank,

 

Roy

Reageer

Leuk! 1 persoon vindt vindt dit leuk.