2012-03-14 8 views
5

Mam aplikację z kilkoma kontrolerami widoku sterowanymi z kontrolera paska kart. Z jednego z tych kontrolerów widoku chcę (po kliknięciu przycisku) przejść do innego kontrolera widoku i zachować pasek zakładek u dołu przekreślonego widoku.W jaki sposób w kontrolce paska kart przesuwać się z jednego kontrolera widoku do innego i zachować pasek zakładek?

Użyłem

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    if ([segue.identifier isEqualToString:@"newView"]){ 
     UIViewController *controller =segue.destinationViewController; 
     controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
     [self presentModalViewController:controller animated:YES]; 
    } 
} 

Działa to dobrze, z wyjątkiem paska kart brakuje segued aby zobaczyć (symbol zastępczy pokazuje go w serii ujęć, ale nie pokazuje się, gdy aplikacja jest uruchomić) próbowałem zostały również zastąpienie

[self presentModalViewController:controller animated:YES]; 

z

[self presentViewController:controller animated:YES completion:nil]; 

ale to też nie działa.

Trochę debugowania pokazuje, że dla kontrolera segued-to view, właściwość tabBarController jest ustawiona na zero.

Czy mimo to zachowujesz pasek tabulatora w kontrolce podglądanej?

Odpowiedz

1

Z twojego wyjaśnienia, nie sądzę, że chcesz kontrolera modalnego. Modal jest używany do nakładania, co sprawia, że ​​pasek kart jest bezużyteczny. Z storyboardu wybierz swoją segue i wybierz push, a nie modal.

enter image description here

push vs modalne (Uwaga pasek kart):

enter image description here enter image description here

+0

używam nie push modalnej. Pasek zakładek jest wyświetlany w serii ujęć, ale w rzeczywistości nie pojawia się, gdy aplikacja jest uruchomiona. – John

+0

Aby zainicjować przejście z kodu, użyj '[self performSegueWithIdentifier: @" theSegueIdentifier "sender: selfOrSomeObject]' który jest metodą 'UIViewController'. Ta linia 'controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController: controller animated: YES]; 'służy do ** modalnego ** przejścia nie są wypychane. Usuń tę linię. – Gobot

+1

Również z dokumentacji Apple for presentModalViewController: animated ... "W urządzeniach iPhone i iPod touch widok modalViewController jest zawsze wyświetlany na pełnym ekranie.Na iPadzie prezentacja zależy od wartości właściwości modalPresentationStyle – Gobot

Powiązane problemy