достигнут пока поповер еще виден - PullRequest
6 голосов
/ 24 октября 2010
-(void)showsearch:(id)sender
{
    SearchViewController *searchview =[[SearchViewController alloc] initWithNibName:@"SearchViewController" bundle:nil];

    settingpopoverController = [[[UIPopoverController alloc] 
                                    initWithContentViewController:searchview] autorelease];               
    [searchview release];
    [settingpopoverController presentPopoverFromBarButtonItem:sender 
                                    permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];


}

Когда я нажимаю на кнопку, приложение закрывается, и я получаю сообщение [UIPopoverController dealloc] reached while popover is still visible..

Ответы [ 3 ]

6 голосов
/ 10 июня 2011

Здесь есть несколько хороших обсуждений по этой теме:

Сохранить / разблокировать шаблон для UIPopoverController, UIActionSheet и контроллеров модального представления?

UIPopoverController иуправление памятью

Суть в том, что вам необходимо:

  • назначить свой автоматически выпущенный поповер на свойство сохранения
  • установить для свойства значение nil в вашемviewloc
  • , а также установка его в ноль в popoverControllerDidDismissPopover.
3 голосов
/ 30 ноября 2010

Проблема в том, что вы устанавливаете

settingpopoverController =

когда вы хотите сделать

self.settingpopoverController =

для которого авто-релиз будет правильным. Второй использует методы доступа к свойствам, первый использует только iVar.

3 голосов
/ 24 октября 2010

думаю, что авто-релиз неправильный, вот учебник

http://www.jannisnikoy.nl/index.php/2010/04/ipad-tutorial-creating-a-popoverviewcontroller

...