UIPopoverController освободил проблему - PullRequest
0 голосов
/ 06 апреля 2011

Я использовал Popover для отображения изображения в нем. Когда пользователь нажимает кнопку, появляется всплывающее окно со слайд-шоу внутри.

Я инициализирую Popover следующим образом: `

- (IBAction)showPopover:(UIButton *)sender {
    myPopover *content = [[myPopover alloc] init];
    detailViewPopover = [[UIPopoverController alloc] initWithContentViewController:content];
    detailViewPopover.popoverContentSize = CGSizeMake(600., 400.);
    detailViewPopover.delegate = self;

    [detailViewPopover presentPopoverFromRect:sender.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

    [content release];
}

` detailViewPopover - это UIPopoverController, я объявляю его моим .h.

Я уволил Popover так: `

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
    // If a popover is dismissed, set the last button tapped to nil.
    [popoverController release];

} `

Когда я запускаю свое приложение, оно работает до тех пор, пока я не получу "- [UIPopoverController release]: сообщение отправлено на освобожденный экземпляр 0x1b29b0", и мои приложения аварийно завершают работу ... Я понимаю, что слишком долго высвобождаю свой UIPopoverController, но я не знаю, где. Хороша ли моя реализация?

Спасибо за вашу помощь

Дайте мне знать, если вам нужна дополнительная информация, я отредактирую сообщение

1 Ответ

1 голос
/ 06 апреля 2011

Вы не должны выпускать ваш popoverController здесь.

Вам необходимо вызвать release для detailViewPopover в вашем текущем методе dealloc контроллеров.

...