Search code examples
iphonecocoa-touchuiactionsheet

How to display custom view in UIActionSheet?


I have a UIView with a date picker that I'd like to display in an action sheet. I'm using the following code:

-(IBAction) button_click:(id)sender{
    //UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"the title" delegate:nil cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Destructive" otherButtonTitles:@"other", nil];

    UIActionSheet *sheet = [[UIActionSheet alloc] init];
    ActionSheetController *actionSheet = [[ActionSheetController alloc]  initWithNibName:@"ActionSheetView" bundle:nil];    
    [sheet addSubview:actionSheet.view];

    [sheet showInView:self.view];
}

What I get is a little bit of the top part of the new view coming up from the bottom and that's it. If I comment the two middle lines of code and uncomment the top part to display a regular action sheet, it works fine. Any ideas what I might be doing wrong?


Solution

  • I've discovered the behavoir occurs because I haven't used the UIActionSheet constructor properly. The buttons and title should be included:

    UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"Date Picker" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];