iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   AlertView opties (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/57129-alertview-opties.html)

Dreissen 05-04-10 16:52

AlertView opties
 
Hallo,

Ik ben bezig met mijn applicatie te verbeteren daarbij wil ik een alert laten zien (dat ik gelukt :P) maar nu moeten ze de optie hebben om op Oke te drukken dan sluit de alert en krijg je hem bij de volgende keer opstarten weer en de optie niet meer weergeven dus dat je de alert niet meer te zien krijg bij het opstarten.

Het is mogelijk maar hoe kan ik dit doen?
Iemand een idee?

Dreissen 06-04-10 13:19

Iemand een voorbeeld code of waar ik het beste op kan googlen.

gekkepietje 06-04-10 13:34

NSUserDefaults, hierin kun je opslaan dat de user de alert al heeft gezien (gewoon een BOOL variabele). Als je app opstart, kijk je of die BOOL gezet is. Zo nee, dan laat je de alert zien en zet je de BOOL (in NSUserDefaults) op YES.

Dreissen 06-04-10 13:55

Citaat:

Oorspronkelijk geplaatst door gekkepietje (Bericht 434764)
NSUserDefaults, hierin kun je opslaan dat de user de alert al heeft gezien (gewoon een BOOL variabele). Als je app opstart, kijk je of die BOOL gezet is. Zo nee, dan laat je de alert zien en zet je de BOOL (in NSUserDefaults) op YES.

En is hier een voorbeeld van, of weet je er zo even geen.
Ik ga het even zo proberen kijken of het lukt.

Ik ben trouwens al zo ver dat ik de data kan opslaan maar hoe moet ik dit nu in de knop verwerken?

if (buttonIndex == 0) {

Zo moet ik dan ongeveer werken alleen dat hij de data opslaan toch?

Het is me ook gelukt de error 1x te laten zien en daarna niet meer maar ik wil dat de gebruiker de keuze heeft Oke of niet meer laten zien

Dreissen 06-04-10 14:19

Citaat:

if (![@"1" isEqual:[[NSUserDefaults standardUserDefaults] objectForKey:@"alert"]]) {
[[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"alert"];
[[NSUserDefaults standardUserDefaults] synchronize];

alert = [[UIAlertView alloc] initWithTitle:@"alert" message:@"alert" delegate:self cancelButtonTitle:@"Niet meer weergeven" otherButtonTitles:@"Verder", nil];
[alert show];
[alert release];
Dit heb ik maar wat gaat er fout?
Hij laat hem nu maar 1x zien maar het maakt niet uit op welke button ik druk op alle buttons laat hij ze maar 1x zien er moet een button zijn die geen actie doorvoert en je dus de alert de volgende keer wel weer krijgt te zien.

Frog 06-04-10 20:53

Ik snap je code niet. Je zegt nu: als 1 gelijk is aan de NSUserDefault alert, maak NSUserDefault alert dan 1. Dat is hij al! Ook heb je nergens code waarmee je de "Niet meer weergeven" knop die waarde laat wijzigen. Ik zou van cancelButton "Verder" maken en een andere button maken die je aan een method koppelt waarmee je de alert van het scherm haalt en de NSUserDefault verandert.

Dreissen 07-04-10 12:53

Citaat:

Oorspronkelijk geplaatst door Frog (Bericht 434950)
Ik snap je code niet. Je zegt nu: als 1 gelijk is aan de NSUserDefault alert, maak NSUserDefault alert dan 1. Dat is hij al! Ook heb je nergens code waarmee je de "Niet meer weergeven" knop die waarde laat wijzigen. Ik zou van cancelButton "Verder" maken en een andere button maken die je aan een method koppelt waarmee je de alert van het scherm haalt en de NSUserDefault verandert.

Die code laat de alert één keer zien, als je de app een 2e keer of mee opstart zie je de alert niet meer.
Maat er moet een keuze zijn niet meer laten zien en gewoon verder.

Frog 07-04-10 17:31

Sorry, ik heb de uitroepteken gemist....

Om datgene dat jij wil te maken moet je een method koppelen aan één van de knoppen van de alert en in die method de volgende code uitvoeren:

Code:

[[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"alert"];
[[NSUserDefaults standardUserDefaults] synchronize];


Dreissen 07-04-10 17:34

Citaat:

Oorspronkelijk geplaatst door Frog (Bericht 435263)
Sorry, ik heb de uitroepteken gemist....

Om datgene dat jij wil te maken moet je een method koppelen aan één van de knoppen van de alert en in die method de volgende code uitvoeren:

Code:

[[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"alert"];
[[NSUserDefaults standardUserDefaults] synchronize];


Maar dat lukt me dus niet op alle knoppen die ik maak geeft hij door dat de alert gezien is, sterker nog ik hoef niet eens op een knop te drukken de app opnenen is genoeg en dan zie je hem niet meer. (de alert)

Frog 07-04-10 19:16

Dat komt dus door de door mij geciteerde code. Je zegt niet altijd dat de NSUserDefault alert "1" gemaakt moet worden wanneer hij dat niet is. Je moet die code op die plaats weghalen en in een method zetten.

Dreissen 07-04-10 19:55

Het lukt me maar niet, ik ga eens googlen op een voorbeeld.
Heb jij toevallig een voorbeeld?

Frog 08-04-10 07:59

Hier kan je een tutorial over een UIAlert met twee buttons waarvan 1 gekoppeld is aan een method.


Alle tijden zijn GMT +2. Het is nu 12:12.