//

remove alle subviews?

remove alle subviews? discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Ik heb een applicatie ontwikkeld waar ik dmv knoppen verder kom door de menu's. elk menu is een view met een paar knoppen. Elke nieuwe ...



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

Reageren

 

Discussietools Weergave
  #1  
Oud 31-08-09, 20:46
cygnusx cygnusx is offline
• iOS 2.2.1
• Besturingssysteem: Windows
 
Geregistreerd: Aug 2009
Berichten: 12
Question remove alle subviews?

Ik heb een applicatie ontwikkeld waar ik dmv knoppen verder kom door de menu's. elk menu is een view met een paar knoppen.

Elke nieuwe keuze die men maakt in het menu laad dus het bijbehorende subview weer.

Stel nou dat ik bij de 5e subview ben, en ik wil een pagina terug dan is dat niet zo lastig. Dan kan ik gewoon zichzelf laten verwijderen en zie je dus de subview eronder (de vorige pagina dus).

Echter, ik wil ook een knop om terug naar het begin te gaan. Ik kan echter geen andere views weghalen dan de eigen en uberhaupt om alle mogelijke views te gaan includen en linken e.d. is wel erg overdreven.

Is er iets van een mogelijkeid om alle subviews in een keer weg te halen? Ik kan hier echt nergens een oplossing voor vinden.

Hulp graag
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 01-09-09, 10:53
danielpunt's schermafbeelding
danielpunt danielpunt is offline
• iOS 4.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Dec 2007
Locatie: Vlaardingen
Berichten: 87
Standaard

kijk eens naar de methods popToRootViewControllerAnimated: of popToViewController:animated: van UINavigationController
  #3  
Oud 07-09-09, 01:36
cygnusx cygnusx is offline
• iOS 2.2.1
• Besturingssysteem: Windows
 
Geregistreerd: Aug 2009
Berichten: 12
Standaard

Ik heb beide geprobeerd maar zonder succes.

Ik heb nu ook nog een begin 'laad' view gemaakt die de originele 1e view inlaad via addSubview. ik dacht dat ik misschien via die loader-view alle subviews hiervan kon verwijderen met een functie, maar ook dat heeft tot niks geleid.

Kan iemand me aub helpen? kom er nog steeds niet uit en zoek/probeer me suf!
  #4  
Oud 07-09-09, 16:14
wbroek wbroek is offline
• iOS 3.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2008
Locatie: Nederland
Berichten: 63
Standaard

iets al dit misschien?
Code:
for (UIView *view in self.subviews) {
        [view removeFromSuperview];
    }
  #5  
Oud 07-09-09, 18:31
cygnusx cygnusx is offline
• iOS 2.2.1
• Besturingssysteem: Windows
 
Geregistreerd: Aug 2009
Berichten: 12
Standaard

Citaat:
Oorspronkelijk geplaatst door wbroek Bekijk bericht
iets al dit misschien?
Code:
for (UIView *view in self.subviews) {
        [view removeFromSuperview];
    }
Bedankt voor de tip, maar die had ik al geprobeerd zonder succes helaas. Kan ik niet een view of viewcontroller gewoon helemaal van scratch opnieuw loaden ofzo? Wellicht dat zoiets werkt?
  #6  
Oud 07-09-09, 19:41
cygnusx cygnusx is offline
• iOS 2.2.1
• Besturingssysteem: Windows
 
Geregistreerd: Aug 2009
Berichten: 12
Standaard

Andere optie, is er missch een makkelijkere manier om een addsubview te doen?

Voorbeeld wat ik nu doe:
  • in de .h file: @class viewnaam
  • in de .h file: IBOutlet viewnaam *Viewnaam;
  • in de .m file: #import "viewnaam.h"
  • in de .m file: [self addSubView:Viewnaam];
  • in de interface builder van de view: de gemaakte iboutlet koppelen aan viewnaam.
Dat zijn dus 5 stappen voor zoiets relatief simpels, is er niet een andere manier om met addSubView te pointen naar de view die jij wil laden?
  #7  
Oud 10-09-09, 15:55
ulquiorra ulquiorra is offline
 
• Besturingssysteem: Windows
 
Geregistreerd: Apr 2009
Berichten: 40
Standaard

Ik heb ongeveer hetzelfde probleem als jij gehad en het probleem zit 'm in de hierarchie ... in plaats van ze toe te voegen als subviews kun je ze het best op de stack pushen en vervolgens poppen. Dan kun je namelijk wel popToViewController e.d. gebruiken.

Sowieso zou ik dit gedeelte van de navigationController in ieder geval even doorlezen.
iPhone Dev Center: UINavigationController Class Reference

Het lijkt me veel beter dan constant subview bovenop subview neer te zetten.
  #8  
Oud 10-09-09, 22:29
cygnusx cygnusx is offline
• iOS 2.2.1
• Besturingssysteem: Windows
 
Geregistreerd: Aug 2009
Berichten: 12
Standaard

Citaat:
Oorspronkelijk geplaatst door ulquiorra Bekijk bericht
Ik heb ongeveer hetzelfde probleem als jij gehad en het probleem zit 'm in de hierarchie ... in plaats van ze toe te voegen als subviews kun je ze het best op de stack pushen en vervolgens poppen. Dan kun je namelijk wel popToViewController e.d. gebruiken.

Sowieso zou ik dit gedeelte van de navigationController in ieder geval even doorlezen.
iPhone Dev Center: UINavigationController Class Reference

Het lijkt me veel beter dan constant subview bovenop subview neer te zetten.
Tja, ik heb het ondertussen een beetje omgegooid. Ik heb nu in de eerst-geladen view een functie gemaakt om nieuwe views in te laden ipv ze allemaal op elkaar te laden.

Die kan ik dan in alle views aanroepen met [[self superview] functienaam];
Je krijgt danwel een warning (omdat hij in de compiler nog niet weet wat de superview is en of die wel die functie heeft), maar het werkt prima zonder dat je in elke subview een terugkoppeling moet maken naar de eerste view met die functie

Ik zou het waarsch. via de viewcontroller moeten doen voor de meest nette manier, maar dit werkt wel goed. Ik heb ook een functie gemaakt om dus al zijn subviews weg te halen (met een stukje code wat iemand hierboven gaf, met een for loop).

Bedankt allen, en missch. heeft iemand in de toekomst nog wat aan deze info.

Alle views bovenop elkaar 'stacken' is niet zo'n goed idee dus.
  #9  
Oud 11-09-09, 11:46
Whacko Whacko is offline
• iOS 7.1.2
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jan 2009
Berichten: 484
Standaard

Citaat:
Oorspronkelijk geplaatst door ulquiorra Bekijk bericht
Ik heb ongeveer hetzelfde probleem als jij gehad en het probleem zit 'm in de hierarchie ... in plaats van ze toe te voegen als subviews kun je ze het best op de stack pushen en vervolgens poppen. Dan kun je namelijk wel popToViewController e.d. gebruiken.

Sowieso zou ik dit gedeelte van de navigationController in ieder geval even doorlezen.
iPhone Dev Center: UINavigationController Class Reference

Het lijkt me veel beter dan constant subview bovenop subview neer te zetten.
in eerste instantie ging ik er dus vanuit dat je netjes de views in de navigationcontroller pusht. Dan werkt het poppen ook zoals Ulquirooa meldt.

als je dan toch een andere manier neemt, moet je het natuurlijk wel netjes doen. Je compiler geeft een warning op je superview omdat je method niet zichtbaar is. Die moet je dus wel netjes in je header zetten he. Beter is nog om een abstracte class te maken (of een protocol) en al je views daarvan te laten overerven (of het protocol te implementeren). ben je van de compiler warning af, EN je kunt met code testen of het uberhaupt wel een class is van het goede type.
__________________
Software Engineer
iPhone Developer
Reageren



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

 

Soortgelijke discussies

Discussie Auteur Forum Reacties Laatste bericht
REMOVE Upgrade target for iPad DRINGEND iMidas Ontwikkelen voor iOS 4 24-01-11 13:16
Archiveren van UIImageView's rechtstreeks uit array zonder [self.view subviews] celaeno2 Ontwikkelen voor iOS 1 24-11-10 02:14
Remove Background (Tweak) LucasT Jailbreak apps en thema's 6 17-10-10 09:47
strings voor meerdere subViews gebruiken? cygnusx Ontwikkelen voor iOS 10 18-08-09 13:38

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 09:19.