Сбой UIPopover от UIButton - PullRequest
       25

Сбой UIPopover от UIButton

0 голосов
/ 29 октября 2011

Я представляю UIPopover с UIButton, но мое приложение падает на линии [popoverController presentPopoverFromRect:[button bounds] inView:button permittedArrowDirections:UIPopoverArrowDirectionRight animated:NO];

- (IBAction)birthdayButtonClicked:(id)sender
{
    UIViewController* popoverContent = [[UIViewController alloc] init];
    UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 344)];
    popoverView.backgroundColor = [UIColor whiteColor];

    UIDatePicker *datePicker = [[UIDatePicker alloc]init];
    datePicker.frame = CGRectMake(0, 44, 320, 300);

    [popoverView addSubview:self.view];
    [popoverView addSubview:datePicker];        
    popoverContent.view = popoverView;

    popoverContent.contentSizeForViewInPopover = CGSizeMake(320, 244);

    UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
    UIButton *button = (UIButton *)sender;
    [popoverController presentPopoverFromRect:[button bounds] inView:button permittedArrowDirections:UIPopoverArrowDirectionRight animated:NO];

    [popoverView release];
    [popoverContent release];
}

Ответы [ 2 ]

3 голосов
/ 29 октября 2011

Не стоит добавлять self.view в качестве подпредставления. UIView объект может отображаться только один раз в каждом текущем моменте, вы не можете показать popover с контентом как self.view в self.view. Если вам действительно нужно выполнить эту задачу, попробуйте скопировать необходимые представления.

0 голосов
/ 14 мая 2013

Измените inView на self.view.inView означает, в каком UIView вы хотите представить popover.

presentPopoverFromRect:[button bounds] inView:**self.view** permittedArrowDirections:UIPopoverArrowDirectionRight animated:NO];
...