2012-04-01 10 views
5

Używam UINavigationController wewnątrz widoku głównego UISplitViewController. Wewnątrz mojego UINavigationController mam, jak zwykle, UITableViewController. Wybranie komórki w tym widoku tabeli powoduje przeniesienie nowego UINavigationItem na stos. To przejście następuje tak, jak się spodziewam. Jednak gdy już popchnę, po naciśnięciu przycisku Wstecz, przejście z powrotem na górę UINavigationItem nie przesuwa się od lewej do prawej, jak zwykle. Zamiast tego ekran staje się czarny, widok główny przytrzymujący obiekt UINavigationController/UITableViewController przesuwa się w dół w środku ekranu od góry, a następnie kontroler UINavigationController pojawia się po lewej stronie, gdzie się go spodziewam. Znalazłem podobne pytania, ale wszystkie zaakceptowane odpowiedzi odnoszą się do nieprawidłowej obsługi rotacji. Sprawdziłem dwukrotnie, czy wszystkie moje kontrolery widoku zwracają YES dla wszystkich orientacji.Popping in UINavigationController wewnątrz UISplitViewController powoduje dziwne przejście

+0

Implementacja orientacji w "UITableViewController", której używam poprawnie w "UINavigationViewController" (zwracanie TAK na iPadzie) rozwiązała problem. –

+0

Czy możesz pokazać nam kod? –

+0

Chciałbym móc. Nigdy nie otrzymałem odpowiedzi i od tamtej pory nie mogłem sobie przypomnieć, jak naprawiałem ... – GarlicFries

Odpowiedz

1

realizacji następujących moim zdaniem kontrolerów rozwiązać go dla mnie

-(NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskAll; 
} 

Nadzieję, że pracuje dla Ciebie także

0

Należy sprawdzić realizację - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation metody w widoku kontrolera, które zostały wepchnięte UINavigationController .

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
    { 
    // should return YES for all orientations 
    // or at least for orientation that your UINavigationController supports. 
    } 

Dla mnie ten problem pojawia się tylko na iOS 5, ale jeśli wystąpi to na iOS 6 również, można wdrożyć -(NSUInteger)supportedInterfaceOrientations w podobny sposób.

Mam nadzieję, że ci to pomoże.

Powiązane problemy