Hauptmenü

Werkzeuge

Kategorien

Archiv

UIPickerView in einem UIActionSheet

Erstellt in IPhone SDK am 19. November 2011 vom Daschmi

Um ein Pickerview zum Beispiel als Modalen Dialog zur Auswahl eines Wertes zu nutzen kann ein UIActionSheet verwendet werden.

Zu erst muss das ActionSheet und den UIPickerView instanziieren:

UIActionSheet *pickerActionSheet = [[UIActionSheet alloc]
  initWithTitle:nil
  delegate:self
  cancelButtonTitlte:nil
  destructiveButtonTitle:nil
  otherButtonTitles:nil];

UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 244, 320, 216)];

In meinem Beispiel verwende ich noch eine UINavigationBar um das ActionSheet zu schließen und die Auswahl zu übernehmen, diese werden wie folgt instanziiert:

UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 200, 320, 44)];
UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithTitle:@"Fertig" style:UIBarButtonSystemItemDone target:self action:@selector(closePickerAction:)];
UINavigationItem *item = [[UINavigationItem alloc] initWithTitle:@""];
item.rightBarButtonItem = closeButton;
item.hidesBackButton = YES;

Im Beispiel sieht man auch wie man den @selector verwendet um ein Event auf einen Button zu legen. Target ist dabei das Objekt wo die Methode closePickerAction aufgerufen wird.

Die Elemente müssen nun noch auf das ActionSheet gelegt werden und das ActionSheet zur Anzeige gebracht werden:

[pickerAction addSubview:navBar];
[pickerAction addSubview:pickerView];

[pickerAction showInView:self.view];
[pickerAction setFrame:CGRectMake(0, 0, 320, 480)];

[navBar release];
[closeButton release];
[item release];
[pickerView release];
[pickerAction release];