Добавление UIPickerView внутри UIActionSheet в iPad - PullRequest
5 голосов
/ 04 января 2012

У меня есть UIPickerView, и мне нужно, чтобы он отображался в UIActionSheet на iPad (он работает очень просто на iPhone, а не на iPad).

У меня есть кнопка в представлении, когда я нажимаю, я выполняю следующий код:

- (IBAction) buttonPressed:(id)sender
{
    NSLog(@"I am pressed");

    UIPickerView* picker = [[UIPickerView alloc] initWithFrame:CGRectMake(100,200,500,500)];
    picker.delegate = self;
    picker.dataSource = self;
    picker.showsSelectionIndicator = YES;
    [self.view addSubview:picker];    
}

// функции делегата и источника данных PickerView:

// returns the number of 'columns' to display.
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 1;
}

// returns the # of rows in each component..
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return 5;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return @"One";
}

Но если изменить приведенный выше код для добавления PickerView внутри actionSheet, Отображает только заголовок ActionSheet, но без PickerView внутри!

Модифицированный код выглядит следующим образом:

- (IBAction) buttonPressed:(id)sender
{
    NSLog(@"I am pressed");

    UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:@"My PickerView"
                                              delegate:nil
                                     cancelButtonTitle:nil
                                destructiveButtonTitle:nil
                                     otherButtonTitles:nil];

    UIPickerView* picker = [[UIPickerView alloc] initWithFrame:CGRectMake(100,200,500,500)];
    picker.delegate = self;
    picker.dataSource = self;
    picker.showsSelectionIndicator = YES;

    [actionSheet addSubview:picker];
    [actionSheet showFromRect:CGRectMake(0, 0, 320, 469) inView:self.view animated:NO];

}

Ответы [ 3 ]

4 голосов
/ 20 сентября 2012

Я застрял, я собираюсь использовать UIPopoverController с UITableViewController внутри вместо этого! .. все равно спасибо!

1 голос
/ 04 января 2012

Попробуйте изменить рамку подборщика.(100, 200) на (x, y) не может быть хорошей позицией.

0 голосов
/ 15 февраля 2012

Я думаю, что строка ([actionSheet addSubview:picker];) должна быть [actionSheet addSubview:picker.view];У меня была та же проблема, но я использовал UIWindow.

...