2011-12-24 20 views
5

Muszę pokazać jedno popOver po lewej stronie jednego splitController, zainicjowałem popOver odrobinę navigationController. Ale kiedy pokażę popover crash mojej aplikacji.UIPopOverController wewnątrz UISplitViewController

Impostazioni *settings = [[Impostazioni alloc] initWithStyle:UITableViewStyleGrouped]; 
settings.title = NSLocalizedString(@"SETTINGS", nil); 
settings.contentSizeForViewInPopover = kContentSizeOfPopOver; 
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:settings]; 
nav.navigationBar.tintColor = kTintColorNavigationBar; 
nav.contentSizeForViewInPopover = kContentSizeOfPopOver; 
UIPopoverController *popOver = [[UIPopoverController alloc] initWithContentViewController:nav]; 
[popOver presentPopoverFromBarButtonItem:self.navigationItem.rightBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES]; 

To jest mój kod. Jakieś pomysły?

EDIT: Błąd nawet jeśli ustawić tylko viewController zamiast SplitController:/I z pustym ViewController:/

+3

Czy mógłbyś opublikować dziennik awarii, może z NSZombieEnabled http://stackoverflow.com/questions/2190227/how-do-i-set-nszombieenabled-in-xcode-4 – Ecarrion

+0

Już ustawiłem NSZombie włączone, ale no log:/ –

+0

Ty też wyciekasz z pamięci. Powinieneś zwolnić wszystkie ustawienia, nav i popOver. –

Odpowiedz

2

(ewentualnie duplikat Error using UIPopoverController.)

Krótko mówiąc, trzeba zachować UIPopoverController jakoś. Albo definiując właściwość dla niego lub zarządzając licznikiem ref ręcznie. W przypadku ARC ta ostatnia nie jest opcją, więc musisz zapisać referencję.

0

wierzę trzeba instancję zmiennej do przechowywania popoverController. W przeciwnym razie po tym, jak metoda zawierająca kod, który pokazałeś, nic nie zachowa twojego popover. W przeciwieństwie do dodawania widoku podrzędnego do widoku, w którym widok zachowałby wówczas podgląd. To samo nie ma miejsca w przypadku popover.

Powiązane problemy