Je l'ai fait quelque chose comme ça pour personnaliser une feuille d'action:
- (void) {showPopup unitPicker * pc = [[unitPicker alloc] init]; UIActionSheet * popupQuery = [[UIActionSheet alloc] initWithTitle: @ "Unités" délégué: pc cancelButtonTitle: néant destructiveButtonTitle: néant otherButtonTitles: néant ];
[pc setParent:self];
popupQuery.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[popupQuery showInView:self.view];
[popupQuery setBounds:CGRectMake(0,0,320, 350)];
[pc setAs:popupQuery];
[popupQuery addSubview:pc.view];
}
L'astuce étant que "unitPicker" a été dérivé d'un UIControllerView, mais mis en œuvre le protocole UIActionSheetDelegate. Il a fourni les deux fonctions:
- (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex;
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex;
Pour tout nettoyage. La grande partie était que le format de unitPicker a été créé à partir d'un NIB, comme il le ferait avec n'importe quel UIViewController.
Les boutons de la vue a rejeté la actionSheet avec le code dans leurs gestionnaires de touchUpInside:
[as dismissWithClickedButtonIndex:0 animated:TRUE];
(Vous pouvez voir dans le code ci-dessus que « comme » a été établi pour être l'objet actionSheet).