UIPopover на ARC - PullRequest
       28

UIPopover на ARC

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

Я использую ARC в приложении для iPad с кодом ниже, всплывающее окно мигает на экране, но не остается.Что я делаю не так?Пожалуйста, помогите

- (IBAction)photoLibraryAction:(id)sender

{   

   UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
   [imagePicker setDelegate:self];

   UIPopoverController *pop1 = [[UIPopoverController alloc]     initWithContentViewController:imagePicker];
    [pop1 setDelegate:self];
    [pop1 presentPopoverFromBarButtonItem:sender  permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    [pop1 setPopoverContentSize:CGSizeMake(320, 400)];
}


    if  ([pop1 isPopoverVisible])
    {
        // Popover is not visible
        [pop1 dismissPopoverAnimated:YES];

    }

}

1 Ответ

3 голосов
/ 23 января 2012

В ARC pop1 будет освобождено сразу после возврата -photoLibraryAction:, поскольку ARC не знает, что -presentPopoverFromBarButtonItem:permittedArrowDirections: делает объект пригодным для использования за пределами его области действия.
Вам нужно будет добавить переменную экземпляра дляваш поповер контроллер, так что ARC не выпускает его.Ваш оператор if также недопустим, потому что когда метод возвращается, pop1 больше не доступен для использования.Вам также придется использовать переменную экземпляра.

...