J'ai appris comment créer un contrôleur de vue et faire glisser la vue depuis le bas. Mais celui dans l'album d'iphone semble différent. Il assombrit le reste de la partie visible de l'écran lorsque la vue glisse. Comment en créer une similaire? Je veux ajouter des boutons comme "enregistrer, annuler, envoyer un courriel" etc dans la vue coulissante.Comment créer un "Album photo de l'iPhone, MMS, Affecter à Contact .." comme vue glissante?
0
A
Répondre
3
Ceci n'est en réalité pas une vue "glissante" (ou modale) typique, mais un UIActionSheet. Au fond, l'idée est que vous initialisez la vue (généralement dans votre contrôleur de vue) avec
UIActionSheet *sheet =
[[[UIActionSheet alloc] initWithTitle:@"My sheet"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:@"Email", @"MMS", nil] autorelease];
ensuite le présenter à l'aide
[sheet showInView:[self view]];
Une fois qu'il est à l'écran, le délégué (self
, ou votre contrôleur de vue, dans cet exemple) recevra le UIActionSheetDelegate message actionSheet:clickedButtonAtIndex:
(ainsi que d'autres, voir la documentation pour plus), donc vous voudrez ajouter <UIActionSheetDelegate>
à votre déclaration d'interface pour le délégué et implémenter cette méthode, comme
- (void)actionSheet:(UIActionSheet *)actionSheet
clickedButtonAtIndex:(NSInteger)buttonIndex {
switch(buttonIndex) {
// Do things based on which button was pushed
}
}
Merci beaucoup Tim! Initialement le bouton d'annulation ne fonctionnait pas alors j'ai trouvé que c'est parce que le bouton était au-dessus des onglets. Donc, je change le code de présentation à ... [feuille showInView: self.parentViewController.view]; et que ça fonctionne :) – Abix
n'oubliez pas de marquer cette réponse comme la réponse "correcte" en la vérifiant. –
@pankajgoswami: notez que UIActionSheet a aussi une méthode 'showFromTabBar:' qui vous permet de le présenter au-dessus d'un UITabBar (car il semble que c'est ce que vous faites) – Tim