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 ...
|
Registreer | FAQ | Ledenlijst | Kalender | Berichten van vandaag | Zoeken |
#21
|
||||
|
||||
Citaat:
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 | |
|
|
|
#22
|
||||
|
||||
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
|
|||
|
|||
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
|
||||
|
||||
Citaat:
Laatst gewijzigd door Malork; 05-04-09 om 13:28. Reden: typos |
#25
|
||||
|
||||
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; 11-04-09 om 00:03. |
#26
|
||||
|
||||
Citaat:
|
#27
|
||||
|
||||
Citaat:
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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. |
#32
|
||||
|
||||
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:
Laatst gewijzigd door Thaurin; 11-04-09 om 01:33. |
#33
|
||||
|
||||
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:
Laatst gewijzigd door Malork; 11-04-09 om 01:38. |
#34
|
||||
|
||||
Citaat:
Citaat:
|
Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten) |
|
Soortgelijke discussies |
||||
Discussie | Auteur | Forum | Reacties | Laatste bericht |
NSURLConnection webpagina uitlezen | bluecola | Ontwikkelen voor iOS | 2 | 02-05-11 16:07 |
bluetooth telefoonboek uitlezen | damnet | iPhone accessoires en onderdelen | 0 | 27-10-09 20:23 |
meerdere views in landscape | Tim14ww | Ontwikkelen voor iOS | 0 | 17-10-09 00:47 |
Views... | JWVD | Ontwikkelen voor iOS | 4 | 28-11-08 14:20 |
Tab bar, meerdere views | BadSide | Ontwikkelen voor iOS | 1 | 22-09-08 05:35 |
|
|