2010-03-21 5 views

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 
    } 
}
+0

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

+0

n'oubliez pas de marquer cette réponse comme la réponse "correcte" en la vérifiant. –

+0

@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

Questions connexes