J'ai une application iPhone qui est basée sur le modèle "Application basée sur la fenêtre" et qui utilise une vue principale avec des sous-vues intégrées.UIActionSheet ne s'affiche pas - l'écran s'assombrit
Pour certaines actions j'ai besoin d'une confirmation par l'utilisateur. Par conséquent, je crée une feuille UIActionSheet et demande à l'utilisateur pour la rétroaction.
Le problème est que la feuille d'action ne s'affiche pas du tout. Au lieu de cela, l'écran s'assombrit. La feuille et les boutons demandés ne s'affichent pas. Après cela, l'application se bloque. L'assombrissement de l'écran est un comportement normal dans le cadre de l'animation qui montre normalement la feuille d'action.
Curieusement, le même code fonctionne correctement s'il est invoqué dans la méthode viewDidLoad. Cela ne fonctionne pas si invoqué dans la méthode buttonPressed qui lance l'action nécessitant la confirmation.
- (void) trashButtonPressed {
// This method is called in the button handler and (for testing
// purposes) in the viewDidLoad method.
NSLog(@"trashButtonPressed");
UIActionSheet* actionSheet =
[[UIActionSheet alloc] initWithTitle: @"Test"
delegate: self
cancelButtonTitle: @"Cancel"
destructiveButtonTitle: @"Delete Sheet"
otherButtonTitles: nil];
[actionSheet showInView: self.view];
[actionSheet release];
}
- (void) willPresentActionSheet:(UIActionSheet *) actionSheet {
NSLog(@"willPresentActionSheet");
}
- (void) didPresentActionSheet:(UIActionSheet *) actionSheet {
NSLog(@"didPresentActionSheet");
}
- (void) actionSheet:(UIActionSheet *)actionSheet
didDismissWithButtonIndex:(NSInteger)buttonIndex {
NSLog(@"actionSheet:didDismissWithButtonIndex");
}
Comme vous pouvez le voir, j'ai ajouté quelques messages de journalisation aux gestionnaires de protocole du UIActionSheetDelegateProtocol. Les méthodes "will present" et "did present" sont appelées comme prévu, mais la feuille n'apparaît pas.
Est-ce que quelqu'un sait, qu'est-ce qui ne va pas ici?
La balise iphone-sdk-3? Vous utilisez toujours un SDK 3.x? –