J'ai une page 'Créer un nouvel événement' où l'utilisateur peut cliquer sur 'Retour' sur le UINavigationController ou sur 'Terminé' pour créer un nouvel événement. Les deux mènent à la même page après.Comment savoir si l'utilisateur a appuyé sur ou fait?
Si mon utilisateur appuie sur "Terminé", l'objet actuellement conservé sur le contrôleur est sauvegardé via saveChanges. Cependant, si l'utilisateur a décidé d'abandonner ceci même s'il édite, j'ai besoin de nettoyer les fichiers statiques générés par cet utilisateur pendant cette durée de vie de cet événement.
Mon seul problème est qu'il n'y a aucun moyen pour moi de différencier un utilisateur d'appuyer sur 'Terminé' ou 'Annuler'.
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// If user has left this page by either pressing 'Done' or 'Cancel'
if (![[self.navigationController viewControllers] containsObject:self]) {
// If this event is NOT saved aka 'Cancel' is pressed.
if (![event isUpdated]) {
// It is important that we only delete videos associated when isNew.
if (isNew) {
NSURL *url = [self getMovieUrl:event.uuid];
[self deleteMovieByUrlIfExists:url];
}
self.event = nil;
}
}
}
- (IBAction)done:(id)sender {
[self.view endEditing:YES];
if (isNew) {
event.eventType = eventTypeInput.text;
event.targetId= [NSNumber numberWithInt:[targetIdInput.text intValue]];
event.game = game;
BOOL success = [[DataStore singletonInstance] saveChanges];
if(success) {
NSLog(@"Success: Event %@ saved. hasVideo:%d", event.uuid, [event.hasVideo intValue]);
// TODO [newEvent upload];
// Also upload the video if possible.
}
}
[self.navigationController popViewControllerAnimated:YES];
}
Le code ci-dessus ne fonctionne pas. Lorsque l'utilisateur appuie sur «Terminé», deleteMovieByUrlIfExists: l'URL est toujours appelée. Quelqu'un sait pourquoi?
====== Voici comment isNew est défini.
- (void)initWithEvent:(id)sender event:(Event *)ev {
isNew = !ev;
if (isNew) {
event = [[DataStore singletonInstance] createEvent];
} else {
event = ev;
}
}
Avez-vous associé des fonctions de rappel distinctes pour les boutons fait et retour? – Saurabh