Uitlezen 'variabelen' tussen 'views'

Uitlezen 'variabelen' tussen 'views' discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Citaat: Oorspronkelijk geplaatst door Thaurin Aha, dus zodra rootViewController de message krijgt om de views te switchen, geef je gelijk settingsViewController door aan die nieuwe ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Zoeken Berichten van vandaag Markeer forums als gelezen

Reageren

 

Discussietools Weergave
  #21  
Oud 3 April 2009, 22:57
Malork's schermafbeelding
» iPhone 4S 32GB (Wit) [FW: 5.1.1]  [Jailbreak: Nee]
» iPad 3 Wi-Fi + 4G 16GB (Zwart) [FW: 5.1.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 31 May 2008
Locatie: Landgraaf
Berichten: 178
Stuur een bericht via MSN naar Malork
Standaard

Citaat:
Oorspronkelijk geplaatst door Thaurin Bekijk bericht
Aha, dus zodra rootViewController de message krijgt om de views te switchen, geef je gelijk settingsViewController door aan die nieuwe view (uitleesViewController). Ik moet het zelf even proberen om het te solidificeren (in het Engels klinkt dat woord beter :/), maar ik snap de bedoeling.
Yep, eigenlijk dus wanneer rootViewController de andere controllers instantieert, en in mijn voorbeeld op het moment dat de knop ingedrukt is.

Ik had natuurlijk ook de uitleesViewController in de 'viewDidLoad' kunnen instantieren maar in mijn voorbeeld wordt dat pas na een druk op de knop gedaan (om een view te switchen).
Gesponsorde links
Advertentie
Advertentie

  #22  
Oud 4 April 2009, 00:47
Thaurin's schermafbeelding
» iPhone 3G 8GB [FW: 2.1]
» Windows
 
Geregistreerd: 4 September 2008
Berichten: 141
Standaard

Bah, ik heb teveel gedronken om nog helder na te denken. Ik kijk morgen even of ik dit zelf kan en dan met zo min mogelijk spieken. Bedankt voor de informatie en uitdaging in elk geval.
  #23  
Oud 4 April 2009, 12:09
» iPhone 4 32GB (Zwart) [FW: 4.1]  [Jailbreak: Nee]
» Windows
 
Geregistreerd: 25 September 2008
Berichten: 153
Standaard

Of je gebruikt een data model, de M uit MVC.

Ik maak meestal een class, zoals GameModel, waarin ik mijn data bijhoud. De RootViewController is de eigenaar van dit object, en geeft een pointer naar dat object mee aan de andere controllers. Die kunnen het model dan rechtstreeks benaderen. "Communicatie" tussen de controllers loopt dan altijd via het model.
  #24  
Oud 4 April 2009, 14:04
Malork's schermafbeelding
» iPhone 4S 32GB (Wit) [FW: 5.1.1]  [Jailbreak: Nee]
» iPad 3 Wi-Fi + 4G 16GB (Zwart) [FW: 5.1.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 31 May 2008
Locatie: Landgraaf
Berichten: 178
Stuur een bericht via MSN naar Malork
Standaard

Citaat:
Oorspronkelijk geplaatst door gekkepietje Bekijk bericht
Of je gebruikt een data model, de M uit MVC.

Ik maak meestal een class, zoals GameModel, waarin ik mijn data bijhoud. De RootViewController is de eigenaar van dit object, en geeft een pointer naar dat object mee aan de andere controllers. Die kunnen het model dan rechtstreeks benaderen. "Communicatie" tussen de controllers loopt dan altijd via het model.
yep, daarom had ik al eens gestoeid met een UISharedApplication, die eigenlijk op soortgelijke manier te werk ging; nu ik wat meer 'truukjes' weet kun je je het zo makkelijk mogelijk maken, maar zoals met alles: voordat je 'geavanceerdere' dingen kunt doen moet je ergens beginnen, en dit is stap 1.

Laatst gewijzigd door Malork; 5 April 2009 om 12:28. Reden: typos
  #25  
Oud 10 April 2009, 22:57
Thaurin's schermafbeelding
» iPhone 3G 8GB [FW: 2.1]
» Windows
 
Geregistreerd: 4 September 2008
Berichten: 141
Standaard

I did it!!

Op de manier die ideveloper uitlegde. Dus als de root controller de eerste view alloc/init'ed, geef ik gelijk een pointer mee naar mezelf (de root controller). Ik heb een button in de eerste view controller waarvan de action dus gewoon een method van de root controller kan aanroepen via die pointer, zodat de root controller vervolgens de view kan switchen (of whatever).

Echt, wat een hoop werk om wat view controllers te switchen, zeg. Tenminste, als je alle view controllers en alles zelf opzet vanaf een Window-based application.

Laatst gewijzigd door Thaurin; 10 April 2009 om 23:03.
  #26  
Oud 10 April 2009, 23:34
Malork's schermafbeelding
» iPhone 4S 32GB (Wit) [FW: 5.1.1]  [Jailbreak: Nee]
» iPad 3 Wi-Fi + 4G 16GB (Zwart) [FW: 5.1.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 31 May 2008
Locatie: Landgraaf
Berichten: 178
Stuur een bericht via MSN naar Malork
Standaard

Citaat:
Oorspronkelijk geplaatst door Thaurin Bekijk bericht
I did it!!

Op de manier die ideveloper uitlegde. Dus als de root controller de eerste view alloc/init'ed, geef ik gelijk een pointer mee naar mezelf (de root controller). Ik heb een button in de eerste view controller waarvan de action dus gewoon een method van de root controller kan aanroepen via die pointer, zodat de root controller vervolgens de view kan switchen (of whatever).

Echt, wat een hoop werk om wat view controllers te switchen, zeg. Tenminste, als je alle view controllers en alles zelf opzet vanaf een Window-based application.
Grats! En als je eigenlijk goed nadenkt, doe je bij PHP hetzelfde...geinig he
  #27  
Oud 10 April 2009, 23:55
Thaurin's schermafbeelding
» iPhone 3G 8GB [FW: 2.1]
» Windows
 
Geregistreerd: 4 September 2008
Berichten: 141
Standaard

Citaat:
Oorspronkelijk geplaatst door Malork Bekijk bericht
Grats! En als je eigenlijk goed nadenkt, doe je bij PHP hetzelfde...geinig he
Nou, ik moet toegeven dat mijn PHP projectjes grotendeels een puinhoop waren. Ik ben dan ook nooit echt diep in object-oriented PHP gedoken (nooit aan PHP5 begonnen, bijvoorbeeld). Dus ik moet wel *heel* diep nadenken om dit in PHP terug te vinden.

Bij C#/ASP.NET hebben ze 't ook niet zo met MVC (everything has a controller, eigenlijk gebeurt er erg veel in de View--al heet het dan "code-behind"), al heeft MS het pattern wel beschikbaar gemaakt pas (open source zelfs!).

Ik vind het allemaal nogal omslachtig. Tenminste, als je effe een "Hello, world!" app met meerdere views wil maken. Ik kan me voorstellen dat met grotere apps deze methode erg goed werkt.

't Is gewoon wennen.
  #28  
Oud 11 April 2009, 00:00
Malork's schermafbeelding
» iPhone 4S 32GB (Wit) [FW: 5.1.1]  [Jailbreak: Nee]
» iPad 3 Wi-Fi + 4G 16GB (Zwart) [FW: 5.1.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 31 May 2008
Locatie: Landgraaf
Berichten: 178
Stuur een bericht via MSN naar Malork
Standaard

ik heb het nu ook op meerdere manieren gedaan, onder andere:

- de manier van iDeveloper (dus rootviewcontroller regelt 'alles' (methodes, variabelen)
- De rootviewcontroller aan de andere views elkaar pointer doorgeven (rootviewcontroller instantieert view a en view b, en geeft vervolgens aan view a de pointer van b en omgekeerd)
- via een aparte class die ik in rootviewcontroller include en instantieer, en vervolgens de pointer ervan aan de views doorgeef

Ik ben de laatste tijd erg verwend met PHP... Ik werk vooral in een CMS / eigen framework dus hoef een hoop dingen niet meer te doen, en ik merk dat ik er luier door geworden ben. Objective C enzo houd me weer scherp, merk ik.
  #29  
Oud 11 April 2009, 00:11
Thaurin's schermafbeelding
» iPhone 3G 8GB [FW: 2.1]
» Windows
 
Geregistreerd: 4 September 2008
Berichten: 141
Standaard

De tweede methode lijkt mij incorrect, of in ieder geval minder netjes. Lijkt me beter als je de hierarchie aanhoudt en gewoon alles weer door de root view controller speelt. En uiteindelijk wil je net als gekkepietje een (of meerdere) Model class(es) hebben die je fijn aan je views doorgeeft.

Ik ben verwend met C#, maar ik weet nog niet of ik blij wordt dat Objective-C me "scherp" houdt. Ik mis garbage collection. Ik mis de getters/setters van C# die vele malen fijner zijn dan Obj-C's @property. C# is veel en veel cleaner dan Obj-C, maar ja. .NET is dan ook een virtual machine.
  #30  
Oud 11 April 2009, 00:23
Malork's schermafbeelding
» iPhone 4S 32GB (Wit) [FW: 5.1.1]  [Jailbreak: Nee]
» iPad 3 Wi-Fi + 4G 16GB (Zwart) [FW: 5.1.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 31 May 2008
Locatie: Landgraaf
Berichten: 178
Stuur een bericht via MSN naar Malork
Standaard

haha nou gelukkig weet ik niet zoveel van C# dus hoef ik me daar geen zorgen om te maken. wtb Garbage Collection (of eerder het ontbreken daarvan) probeer ik goed mee op te letten. alles wat ik instantieer release ik ook, en die @property beginnen ook aardig vertrouwd te raken.

Inderdaad, ik was vergeten te vermelden dat methode 2 minder (niet) netjes is en ook helemaal niet volgens het 'protocol' en zal hem zo ook nooit gebruiken, maar was meer om te testen of het ook werkte.
  #31  
Oud 11 April 2009, 00:24
macfreaker's schermafbeelding
iPhone(club) Guru
» iPhone 5s 32GB (Space Grijs) [FW: 9.2]  [Jailbreak: Nee]
» iPad Pro 10,5 Wi-Fi 256GB (Zilver) [FW: 11.1]  [Jailbreak: Nee]
» OS X
 
Geregistreerd: 16 December 2007
Locatie: Aalst(50.936242,4.025867)
Berichten: 2.186
Stuur een bericht via ICQ naar macfreaker Stuur een bericht via Instant Messenger naar macfreaker Stuur een bericht via MSN naar macfreaker Stuur een bericht via Skype™ naar macfreaker
Standaard

Is dit wat je zoekt ?

Downloads
  #32  
Oud 11 April 2009, 00:30
Thaurin's schermafbeelding
» iPhone 3G 8GB [FW: 2.1]
» Windows
 
Geregistreerd: 4 September 2008
Berichten: 141
Standaard

Met methode 2 alloc/init je beide view controllers ook al direct, wat misschien helemaal niet nodig is als een van beide controllers nooit wordt gebruikt. Ik zat net te denken aan de lazy loading die je heel vaak in C# implementeerd in getters; het zou ook in Obj-C werken.

Ik weet niet of het gebruikelijk is, maar denk je het volgende in: de getting is een method, die checkt of het attribuut nil is. Zoja, vult de getter method het attribuut en returned hem. Op deze manier hoef je dus nooit na te denken over het laden van je view controllers; je gooit ze gewoon in je main view en de rest gebeurt achter de schermen. Ideaal.

Citaat:
Oorspronkelijk geplaatst door macfreaker Bekijk bericht
Is dit wat je zoekt ?

Downloads
Ik denk dat dit een van de manieren is die Malork heeft geprobeerd. Ikzelf heb het nog niet op die manier (via de app delegate) gedaan. Ik weet eigenlijk niet waarom je daarvoor zou kiezen, tenzij je *echt* globaal over bepaalde data wilt kunnen beschikken (zoals app configuratie). Oh well.

Laatst gewijzigd door Thaurin; 11 April 2009 om 00:33.
  #33  
Oud 11 April 2009, 00:35
Malork's schermafbeelding
» iPhone 4S 32GB (Wit) [FW: 5.1.1]  [Jailbreak: Nee]
» iPad 3 Wi-Fi + 4G 16GB (Zwart) [FW: 5.1.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 31 May 2008
Locatie: Landgraaf
Berichten: 178
Stuur een bericht via MSN naar Malork
Standaard

Klopt, heb er redelijk wat mee gestoeid nu. ik gebruik vooral methode 3 (eigen NSObject class(es)); op die manier heb vind ik het handiger doordat mijn rootController of AppDelegate niet een verzameling van methodes en variabelen wordt.; dat van C# klinkt makkelijk inderdaad; zoiets moet ook vast mogelijk zijn in Objective C,zou je denken..
Maar voorlopig heb ik nog GENOEG dingen te leren... ik moet niet te snel willen gaan.


Citaat:
Oorspronkelijk geplaatst door macfreaker Bekijk bericht
Is dit wat je zoekt ?

Downloads
@Macfreaker: Thanks, weer een bookmark erbij maar gelukkig weet ik al een tijdje hoe het moet (maar er zullen vast manieren bijzitten die ook handig kunnen zijn!)

Laatst gewijzigd door Malork; 11 April 2009 om 00:38.
  #34  
Oud 11 April 2009, 00:59
Thaurin's schermafbeelding
» iPhone 3G 8GB [FW: 2.1]
» Windows
 
Geregistreerd: 4 September 2008
Berichten: 141
Standaard

Citaat:
Oorspronkelijk geplaatst door Malork Bekijk bericht
dat van C# klinkt makkelijk inderdaad; zoiets moet ook vast mogelijk zijn in Objective C,zou je denken..
Het is zeker mogelijk: je kunt natuurlijk je eigen getter/setter methodes implementeren in Obj-C. @property is alleen maar een shortcut, maar je kunt ook je eigen getter maken.

Citaat:
@Macfreaker: Thanks, weer een bookmark erbij
Precies, ik zat ook al wat rond te kijken op die site. Leuke collectie videos!
Reageren


Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 
Discussietools
Weergave

Soortgelijke discussies

Discussie Auteur Forum Reacties Laatste bericht
NSURLConnection webpagina uitlezen bluecola Ontwikkelen voor iOS 2 2 May 2011 15:07
bluetooth telefoonboek uitlezen damnet iPhone accessoires en onderdelen 0 27 October 2009 19:23
meerdere views in landscape Tim14ww Ontwikkelen voor iOS 0 16 October 2009 23:47
Views... JWVD Ontwikkelen voor iOS 4 28 November 2008 13:20
Tab bar, meerdere views BadSide Ontwikkelen voor iOS 1 22 September 2008 04:35

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 10:59.