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?
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
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
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