Aide pour implémenter le callback, et le delegate
Bonjour,
Je suis actuellement chargé de rajouter des fonctionnalités dans une application Iphone depuis 1 semaine. Ce sont donc mes débuts dans l'objective C et Cocoa Touch.
J'arrive à peu près à me débrouiller avec la documentation et quelques tutos trouvés sur le net.
Mais la, je reste bloqué sur un tuto que j'ai lu pour envoyer des SMS depuis l'application.
J'ai suivi cette page web :
http://blog.mugunthkumar.com/coding/...nd-in-app-sms/
J'ai bien pu faire les étapes 1 à 3, mais la 4iéme, je comprends pas trop ce qu'il faut faire, bien que j'ai lu de la doc sur la délégation,...
Je vous mets l'intégralité de mon code.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
//
// VueAcheterTicket.h
// Optymo
//
// Created by Etienne Trimaille on 03/11/10.
// Copyright 2010 Optymo. All rights reserved.
//
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <MessageUI/MessageUI.h>
@interface VueAcheterTicket : UIViewController{
//Zone de texte
IBOutlet UITextView *texte;
IBOutlet UIButton *btnEnvoyer;
IBOutlet UILabel *titre;
}
- (IBAction) envoyerSMS: (id) sender;
@end |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
//
// VueAcheterTicket.m
// Optymo
//
// Created by Etienne Trimaille on 03/11/10.
// Copyright 2010 Optymo. All rights reserved.
//
#import "VueAcheterTicket.h"
@implementation VueAcheterTicket
- (void)viewDidLoad{
titre.text = [[NSString alloc] initWithFormat:@"Acheter un ticket"];
texte.text = [[NSString alloc] initWithFormat:@"Tarif : 1,5 + prix d'un SMS \n\nValidité : 1 heure \n\nEnvoyer BUS au 8 41 00"];
}
- (IBAction) envoyerSMS{
NSLog(@" tentative d'envoi d'un SMS");
MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
if([MFMessageComposeViewController canSendText]){
NSLog(@"Envoi de SMS autorisé");
controller.body = @"BUS";
controller.recipients = [NSArray arrayWithObject:@"84100"];
controller.messageComposeDelegate = self;
[self presentModalViewController:controller animated:YES];
}else {
NSLog(@"Envoi non autorisé");
}
}
- (void) messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
switch (result) {
case MessageComposeResultCancelled:
[controller resignFirstResponder];
NSLog(@"Cancelled");
break;
case MessageComposeResultFailed:
NSLog(@"Error");
break;
case MessageComposeResultSent:
NSLog(@"OK");
break;
default:
break;
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)viewDidUnload {
[super viewDidUnload];
}
- (void)dealloc {
[super dealloc];
}
@end |
Par rapport au tuto, j'ai du enlever (id) sender à ma fonction envoyerSMS pour que la compilation fonctionne.
Actuellement, quand j'appuie sur mon bouton, l'éditeur de SMS s'ouvre bien correctement avec les champs préremplis. Ensuite l'annulation du SMS fonctionne également en console, mais ne ferme pas l'éditeur de SMS.
Merci d'avance pour vos conseils.