Animatie wijzigen van de weergave-controllers zonder het gebruik van navigatie-controller stapel, subviews of modal-controllers?

NavigationControllers hebben ViewController stapels te beheren, en beperkte animatie overgangen.

Het toevoegen van een view-controller als een sub-weergave van een bestaande weergave controller vereist het passeren van de gebeurtenissen naar de sub-view-controller, dat is een pijn te beheren, vol met kleine ergernissen en in het algemeen voelt als een slechte hack bij de uitvoering van (Apple raadt aan om tegen dit te doen).

Het presenteren van een modal-view-controller opnieuw plaatsen van een view-controller op de top van de andere, en terwijl het niet het geval doorgeven van problemen zoals hierboven beschreven, is het niet echt ‘swap’ de view-controller, het stapelt het.

Storyboards zijn beperkt tot iOS 5, en zijn bijna ideaal, maar kan niet worden gebruikt in alle projecten.

Kan iemand een STEVIGE VOORBEELD op een manier om de weergave te veranderen controllers zonder de bovenstaande beperkingen en zorgt voor een geanimeerde overgangen tussen hen?

Een nauwe voorbeeld, maar geen animatie:
Het gebruik van meerdere iOS-aangepaste weergave controllers zonder een navigatie controller

Edit: Nav Controller te gebruiken is prima, maar er moet een geanimeerde overgang stijlen (dus niet alleen de dia-effecten) van de view-controller wordt weergegeven moet worden verwisseld volledig (niet meegeleverd). Als de tweede view-controller moet verwijderen, een andere weergave controller van de stapel, dan is het niet ingekapseld genoeg.

Edit 2: iOS 4 worden de basis-OS voor deze vraag, ik moet verduidelijkt dat bij het noemen van storyboards (boven).

  • U kunt doen aangepaste animatie, overgangen met een navigation controller. Als dit aanvaardbaar is, verwijder die beperking van uw vraag en ik zal je post een code voorbeeld.
  • als het slaat de moeite van het beheer van de stapel en geschikt is voor verschillende geanimeerde overgang stijlen tussen de weergave controllers vervolgens navigatie-controller te gebruiken is prima!
  • Ok goed. Ik ongeduldig en geplaatst de code. Geef het een keer te proberen. Voor mij werkt.
  • u zei hier dat men kan doen aangepaste animatie, overgangen tussen weergave controllers met behulp van een navigatie-controller… hoe? Kunt u plaatst een voorbeeld? bedankt.

 

6 Replies
  1. 108

    EDIT: Nieuwe antwoord dat werkt in elke stand.
    De oorspronkelijke antwoord alleen werkt als de interface is in de staande stand. Dit is b/c bekijk de overgang animaties die vervangen door een weergave w/een ander moet gebeuren met uitzicht op tenminste een niveau onder de eerste weergave toegevoegd aan het venster (bijvoorbeeld window.rootViewController.view.anotherView).

    Ik heb uitgevoerd een eenvoudige container klasse I genoemd TransitionController. U kunt het vinden op https://gist.github.com/1394947.

    Als een terzijde, ik heb liever dat de uitvoering in een aparte klasse b/c het is makkelijker om te hergebruiken. Als u niet wilt dat, kon je gewoon uitvoeren van de dezelfde logica, die direct in de app delegate het elimineren van de noodzaak voor de TransitionController klasse. De logica die u nodig zou hebben zou hetzelfde zijn, echter.

    Als volgt gebruiken:

    In de app delegate

    //add a property for the TransitionController
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        MyViewController *vc = [[MyViewContoller alloc] init...];
        self.transitionController = [[TransitionController alloc] initWithViewController:vc];
        self.window.rootViewController = self.transitionController;
        [self.window makeKeyAndVisible];
        return YES;
    }

    Om de overgang naar een nieuwe view-controller van een view-controller

    - (IBAction)flipToView
    {
        anotherViewController *vc = [[AnotherViewController alloc] init...];
        MyAppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
        [appDelegate.transitionController transitionToViewController:vc withOptions:UIViewAnimationOptionTransitionFlipFromRight];
    }

    EDIT: Origineel Antwoord hieronder, werkt alleen voor portet oriëntatie

    Ik de volgende aannames voor dit voorbeeld:

    1. Heeft u uitzicht op de controller die is toegewezen als de rootViewController van uw venster

    2. Wanneer u overschakelt naar een nieuwe weergave die u wilt vervangen door de huidige viewController met de viewController het bezit van het nieuwe weergave. Op elk moment, alleen de huidige viewController in leven is (bijv. alloc ‘ ed).

    De code eenvoudig worden aangepast om anders te werken, het belangrijkste punt is de geanimeerde overgang en de single view-controller. Zorg ervoor dat je niet behouden van een view-controller ergens buiten het toewijzen van het window.rootViewController.

    Code te animeren overgang in de app delegate

    - (void)transitionToViewController:(UIViewController *)viewController
                        withTransition:(UIViewAnimationOptions)transition
    {
        [UIView transitionFromView:self.window.rootViewController.view
                            toView:viewController.view
                          duration:0.65f
                           options:transition
                        completion:^(BOOL finished){
                            self.window.rootViewController = viewController;
                        }];
    }

    Bijvoorbeeld gebruik in een view-controller

    - (IBAction)flipToNextView
    {
        AnotherViewController *anotherVC = [[AnotherVC alloc] init...];
        MyAppDelegate *appDelegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;
        [appDelegate transitionToViewController:anotherVC
                                 withTransition:UIViewAnimationOptionTransitionFlipFromRight];
    }
    • Ja, erg leuk! Niet alleen doen de truc, maar het is een zeer eenvoudige en schone code voorbeeld. Veel dank!
    • Niet zijn problemen veroorzaken in het landschap voor u? Ook: is dit leiden tot de willAppear en didAppear methoden van de viewControllers?
    • Ik weet het verschijnen oproepen worden gedaan, omdat ik ingelogd hen. Ik zie ook niet waarom dit van invloed zou zijn op oriëntatie verandert. Kunt u wat meer vertellen waarom je denkt dat het zou?
    • Het blijkt dat @FelixLam correct is. Mijn oplossing zoals die hier werkt alleen in de staande stand b/c van de werking van windows en de wortel weergave van de aan hen opgedragen werkzaamheden. Ik denk dat dit een limitaiton (of eis) van iOS. Ik heb tot een oplossing te komen die werkt voor alle oriëntaties en ben toe te voegen aan mijn antwoord. Het vereist het gebruik van een container klasse I genoemd TransitionController. Het werkt op dezelfde manier als een UINavigationController zonder de stapel navigatie.
    • bedankt voor de vraag, het was een leuke uitdaging denkend dat dit uit. Aan de andere kant, het is een big time sync. 🙂 Hoop dat je het kunt gebruiken.
    • Dank voor al uw moeite. Het lijkt alsof er geen manier is om de weergave te veranderen controllers zonder gebruik een van de methoden vermeld in de vraag (in dit geval, het is nu het toevoegen van een view-controller als een subview naar een andere view controller). Aan de andere kant, de staande versie van de code werkt nog steeds, ten minste werkbaar voor de iPhone apps, dus tenzij iemand komt met een alternatief, ik hou van jou het juiste antwoord.
    • De eis is dat de animaties optreden met uitzicht op een niveau onder de eerste weergave toegevoegd aan het venster (bv. venster.rootViewController.bekijk de.anotherView). Dat is de ware behoeften. De makkelijkste manier om dat te doen is met behulp van een speciale view-controller als de container (bijv. TransitionController, UINavigationController, enz.). U kunt obscure deze speciale controller in de app delegate door het toevoegen van methoden voor het uitvoeren van de overgangen. Op die manier is de rest van uw weergave-controllers kunnen worden uitgevoerd zonder kennis van het al is ze nog een gesprek met uw appDelegate te doen met de overgang.
    • Geloof me niet op mijn opmerkingen op de verkeerde manier, het is een geweldig antwoord, en doet zijn werk goed. Ik ben verbaasd dat na Apple is niet uitgedrukt een manier om dit te doen al.
    • Geen paniek, het was gewoon uitleggen wat ik heb geleerd tijdens het werken aan dit. Als Apple de documenten waren een beetje beter dit zou veel makkelijker/sneller.
    • Ik merkte dat de nieuwe TransitionController werkt voor iOS 5, maar niet voor minder dan dat. Het is omdat de weergave zal verschijnen en andere methoden worden niet genoemd op de nieuwe view-controller. Het laden van de penpunt en weer te geven, maar verschijnt niet genoemd worden in de nieuwe view-controller, zodat alle code in die methoden niet effectief zijn.
    • Wilde gewoon mijn 2c en dank u voor het verstrekken van zo een elegante oplossing. Wordt nieuw in iOS, ik vond het erg moeilijk om te begrijpen hoe UIViewControllers van complexe scenario ‘ s moeten worden geladen en gelost goed. Deze post en de subklasse heeft me echt geholpen te begrijpen wat er gedaan moet worden. Nogmaals bedankt!
    • prima oplossing, werkt vrij goed in mijn iphone app, behalve voor een probleem ik ben geconfronteerd, na de eerste initialisatie transVC=[TransitionController … initWithViewController:aUINavCtrlObj]; venster.rootVC=transVC; het uitzicht in de aUINavCtrlObj is gevoerde 20px van boven (d.w.z. de onderste 20 px-out van het scherm(UIWindow) grenzen in alle richtingen), maar nadat ik [transVC transitionToViewController:anotherVC] de vulling is gegaan. Ik probeerde wantsFullScreenLayout=NO in TransitionController de loadView, wat het doet is het voegt een 20 px zwart gebied net onder de statusbalk.
    • Ik had het zelfde probleem. Ik opgelost door het veranderen van lijn 25 van TransitionController.m te UIView *view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];, maar ik heb alleen deze op de nieuwste versie van iOS, dus test zorgvuldig.
    • inderdaad, het lost het probleem op, getest op iOS 5 simulator, bedankt m8 🙂
    • Dit is een geweldige aanpak en ik wil dat je om te houden van het krijgen van rep voor, dus ik zal niet pocheer het en verander dan deze regel. Dat gezegd hebbende, de opvulling lijkt uit in de nieuwere iOS-versies. Heb je hetzelfde probleem, en als dat zo is, is mijn fix werk?
    • Ik had problemen met vulling ook het toevoegen van deze regel self.viewController.view.frame = view.bounds; aan het einde van de loadView methode in TransitionController vast voor mij.
    • u bent slecht hanteren van het plaatsen van het kind, zie github.com/xelvenone/UIViewController–Container-
    • De vraag naar een oplossing voor iOS 4.x en de methoden die u gebruikt in uw subklasse volgende vereist: iOS 5.x.
    • viewDidAppear is twee keer genoemd..
    • Weet iemand een manier van het uitvoeren van dergelijk gedrag, maar niet te bellen viewDidAppear twee keer?? Bedankt!
    • Update a.u.b. antwoord voor swift 4
    • Sorry, maar ik ben niet actief bezig iOS ontwikkeling van deze dagen. Stack Overflow is geweldig, maar de antwoorden zoals deze zijn goed op een moment in de tijd voor specifieke iOS SDK-versies. Ik weet zeker dat er veel betere manieren om dit te doen vandaag met iOS 11 / Swift. Niet te vergeten is er waarschijnlijk een aantal grote OSS libs die er zijn. Ik heb te laat het aan de gemeenschap om deze bij te werken. Misschien tijd voor een nieuwe top-level vraag?
    • zinvol

  2. 67

    Kunt u gebruik maken van Apple ‘ s nieuwe viewController insluiting systeem. Voor meer gedetailleerde informatie, check out de WWDC 2011 sessie video “de Uitvoering van UIViewController Containment”.

    Nieuwe iOS5, UIViewController Insluiting kunt u een ouder viewController en een aantal van kind viewControllers die daarin zijn opgenomen. Dit is hoe de UISplitViewController werkt. Dit te doen kunt u stapelweergave controllers in een van je ouders, maar voor uw specifieke toepassing die u alleen met behulp van de ouder voor het beheren van de overgang van de ene zichtbaar viewController naar de andere. Dit is de door Apple erkende manier om dingen te doen en te animeren van een kind viewController is pijnloos. Bovendien krijg je ook nog gebruik maken van alle verschillende UIViewAnimationOption overgangen!

    Ook, met UIViewContainment, hoeft u geen zorgen te maken, tenzij u wilt, over de rommeligheid van het beheer van het kind viewControllers tijdens de oriëntatie evenementen. U kunt gewoon gebruik maken van de volgende handelingen uit om uw parentViewController naar voren rotatie gebeurtenissen voor het kind viewControllers.

    - (BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers{
        return YES;
    }

    Kunt u het volgende doen of iets dergelijks in een van je ouders viewDidLoad methode om het instellen van de eerste childViewController:

    [self addChildViewController:self.currentViewController];
    [self.view addSubview:self.currentViewController.view];
    [self.currentViewController didMoveToParentViewController:self];
    [self.currentViewController.swapViewControllerButton setTitle:@"Swap" forState:UIControlStateNormal];

    dan als je nodig hebt om het kind viewController, belt u met iets in de trant van de volgende in de bovenliggende viewController:

    -(void)swapViewControllers:(childViewController *)addChildViewController:aNewViewController{
         [self addChildViewController:aNewViewController];
         __weak __block ViewController *weakSelf=self;
         [self transitionFromViewController:self.currentViewController
                           toViewController:aNewViewController
                                   duration:1.0
                                    options:UIViewAnimationOptionTransitionCurlUp
                                 animations:nil
                                 completion:^(BOOL finished) {
                                       [aNewViewController didMoveToParentViewController:weakSelf];
    
                                       [weakSelf.currentViewController willMoveToParentViewController:nil];
                                       [weakSelf.currentViewController removeFromParentViewController];
    
                                       weakSelf.currentViewController=[aNewViewController autorelease];
                                 }];
     }

    Ik heb een volledig voorbeeld van het project hier: https://github.com/toolmanGitHub/stackedViewControllers. Dit andere projecten laat zien hoe het gebruik UIViewController Containment op een aantal verschillende input viewController soorten die niet het hele scherm.
    Veel geluk

    • Een geweldig voorbeeld. Dank u voor het nemen van de tijd om te posten van de code. Aan de andere kant, het is beperkt tot alleen voor iOS 5. Zoals vermeld in de vraag: “[Storyboards] zijn beperkt tot iOS 5, en zijn bijna ideaal, maar kan niet worden gebruikt in alle projecten.” Gezien het feit dat een groot percentage (rond de 40%?) van klanten nog gebruik van iOS 4, het doel is te zorgen voor iets dat werkt in iOS 4 en hoger.
    • Mocht u niet in gesprek [self.currentViewController willMoveToParentViewController:nil]; in voor de transitie?
    • volgens de documenten op UIViewController insluiting, belt u willMoveToParentViewController alleen als u het overschrijven van de addChildViewController methode. In dit voorbeeld heb ik roep het maar niet overschrijven.
    • In de demo die op de WWDC ik meen me te herinneren dat ze noemden het voor het bellen vanaf de overgang, omdat de overgang betekent niet dat de currentVC zal verplaatsen naar nul. In het geval van een UITabBarController de overgang zou niet van invloed op de vc ‘ s ouders. Het verwijderen van het bovenliggende roept de didMoveToParentViewController:nihil, maar er is geen testament… bellen. IMHO
  3. 7

    OK, ik weet dat de vraag zegt zonder het gebruik van een navigatie-controller, maar geen reden om het niet te doen. OP niet te reageren op opmerkingen in het voor mij tijd om te gaan slapen. Don ‘ t vote me neer. 🙂

    Hier is hoe om pop de huidige view-controller en spiegelen aan een nieuwe view-controller met behulp van een navigatie controller:

    UINavigationController *myNavigationController = self.navigationController;
    [[self retain] autorelease];
    
    [myNavigationController popViewControllerAnimated:NO];
    
    PreferencesViewController *controller = [[PreferencesViewController alloc] initWithNibName:nil bundle:nil];
    
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration: 0.65];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:myNavigationController.view cache:YES];
    [myNavigationController pushViewController:controller animated:NO];
    [UIView commitAnimations];
    
    [controller release];
    • Niet deze stack bekijk de controllers?
    • Ja, omdat we met behulp van een navigatie controller. Echter, het wordt rond de beperking op wat voor soort van overgangen die u kunt uitvoeren, waarvan ik dacht dat was de kern van uw vraag.
    • Dichtbij, maar een van de grote problemen is dat er meerdere view-controller te beheren op de stapel. Ik ben op jacht naar een manier om de weergave te veranderen controllers volledig. =)
    • Ah. Ik kan wel iets zoals dat ook… geef me een minuut. Zo niet, ik zal het verwijderen van dit antwoord.
    • Ok, ik geplaveide samen twee verschillende stukjes code. Ik denk dat dit zal doen wat je wilt.
    • Ik bewerkte het gebruik van myNavigationController rookvrij.
    • Dit werkt! Echter, ik ben benieuwd…wanneer de weergave wordt geknald, waarom is het niet direct verdwijnen? Is het omdat het nog steeds in de UI-thread wanneer de animatie wordt gestart?
    • Het is omdat ik bewaar het voor het eerst en dan autorelease. Het behouden blijft rond lang genoeg om te doen wat we nodig hebben en de autorelease laat gaan als we klaar zijn, dus er is geen geheugen lek.
    • Ik ben met behulp van ARC, dus ik denk dat het toepassen van hetzelfde principe? Ook, voordat ik dit proberen, ik check de nav controller stapel rekenen met een aparte knop actie: count = 1, na dit gedaan te hebben, ik wacht een paar seconden en controleer de graaf weer, en het toont 2. Enig idee waarom?
    • Ik ga nu slapen. Weg langs het slapen gaan, of ik zou blij zijn om te helpen. Hier zijn een paar afsteken gedachten: ARC – Nooit geprobeerd met ARC ingeschakeld. Stapel Graaf – Misschien kunt u doorlopen en zien wat VCs op de stapel. Hoop dat dit je geholpen uit. Zzzzzzzzz
    • Ik zal graven in het meer, maar de stapel altijd heeft twee weergave-controllers. Ik voegde een derde knop, schoot de stapel, en de graaf werd 1, dus ik zal kijken naar het meer.
    • De eerste view-controller niet wordt verwijderd uit de stapel. Het kan handmatig worden verwijderd in de nieuwe view-controller, maar dan zijn we terug bij het probleem van stapel management. Dichtbij, maar niet helemaal wat ik zoek.
    • in antwoord op je reactie hierboven – ik gepost in dit antwoord.

  4. 3

    Aangezien ik net gebeurd over precies dit probleem, en probeerde variaties op de bestaande antwoorden op een beperkt succes, ik kom na hoe ik uiteindelijk opgelost:

    Zoals beschreven in deze post op maat segues, het is eigenlijk erg makkelijk om te maken aangepaste segues. Ze zijn ook super makkelijk om hook-up in Interface Builder, houden ze de relaties in de IB zichtbaar, en ze hebben niet veel nodig ondersteuning door de overgang van de bron/bestemming bekijk controllers.

    De post hierboven gekoppeld biedt iOS 4 code voor het vervangen van de huidige top view-controller op de navigationController stapel met een nieuwe aan de hand van een dia-in-uit-de-top animatie.

    In mijn geval, ik wilde een soortgelijke vervangen segue gebeuren, maar met een FlipFromLeft overgang. Ik heb ook alleen nodig ondersteuning voor iOS 5+. Code:

    Van RAFlipReplaceSegue.h:

    #import <UIKit/UIKit.h>
    
    @interface RAFlipReplaceSegue : UIStoryboardSegue
    @end

    Van RAFlipReplaceSegue.m:

    #import "RAFlipReplaceSegue.h"
    
    @implementation RAFlipReplaceSegue
    
    -(void) perform
    {
        UIViewController *destVC = self.destinationViewController;
        UIViewController *sourceVC = self.sourceViewController;
        [destVC viewWillAppear:YES];
    
        destVC.view.frame = sourceVC.view.frame;
    
        [UIView transitionFromView:sourceVC.view
                            toView:destVC.view
                          duration:0.7
                           options:UIViewAnimationOptionTransitionFlipFromLeft
                        completion:^(BOOL finished)
                        {
                            [destVC viewDidAppear:YES];
    
                            UINavigationController *nav = sourceVC.navigationController;
                            [nav popViewControllerAnimated:NO];
                            [nav pushViewController:destVC animated:NO];
                        }
         ];
    }
    
    @end

    Nu, controle-slepen tot het instellen van een andere vorm van overgang, dan is het een Aangepaste segue, en typ de naam van de aangepaste segue-klasse, et voilà!

    • IS er een manier om dit programatically zonder storyboard?
    • Voor zover ik weet, voor het gebruik van een segue u het definiëren en geef het een id in een storyboard. U kunt zich beroepen op een overgang in de code met UIViewController de –performSegueWithIdentifier:sender: methode.
    • U moet nooit bellen viewDidXXX en viewWillXXX direct.
  5. 2

    Ik worstelde met deze voor een lange tijd, en een van mijn problemen is vermeld hier, ik ben niet zeker als u had dat probleem. Maar hier is wat ik zou aanraden als het moet werken met iOS 4.

    Ten eerste, maak een nieuwe NavigationController klasse. Dit is waar wij doen al het vuile werk–andere klassen zullen in staat zijn om “goed” gesprek aanleg methoden zoals pushViewController: en dergelijke. In uw .h:

    @interface NavigationController : UIViewController {
        NSMutableArray *childViewControllers;
        UIViewController *currentViewController;
    }
    
    - (void)transitionFromViewController:(UIViewController *)fromViewController toViewController:(UIViewController *)toViewController duration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL))completion;
    - (void)addChildViewController:(UIViewController *)childController;
    - (void)removeChildViewController:(UIViewController *)childController;

    Het kind bekijken controllers array zal dienen als een archief voor de weergave controllers in onze stack. We zouden het automatisch doorsturen van alle rotatie en grootte van de code van de NavigationController’s bekijken om de currentController.

    Nu, in onze uitvoering:

    - (void)transitionFromViewController:(UIViewController *)fromViewController toViewController:(UIViewController *)toViewController duration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL))completion
    {
        currentViewController = [toViewController retain];
        //Put any auto- and manual-resizing handling code here
    
        [UIView animateWithDuration:duration animations:animations completion:completion];
    
        [fromViewController.view removeFromSuperview];
    }
    
    - (void)addChildViewController:(UIViewController *)childController {
        [childViewControllers addObject:childController];
    }
    
    - (void)removeChildViewController:(UIViewController *)childController {
        [childViewControllers removeObject:childController];
    }

    Nu kunt u de uitvoering van uw eigen aangepaste pushViewController:, popViewController en dergelijke, met behulp van deze methode oproepen.

    Succes, en ik hoop dat dit helpt!

    • Moeten we ons opnieuw resort aan toe te voegen bekijk de controllers als sub-standpunten van de bestaande weergave controllers. Toegegeven, dit is wat de bestaande Navigatie-Controller heeft, maar het betekent dat we in principe hebben om het te herschrijven en methoden. In werkelijkheid, moeten we voorkomen dat te distribueren viewWillAppear en soortgelijke methoden. Ik begin te denken dat er geen nette manier om dit te doen. Echter, wil ik je toch bedanken voor de genomen tijd en moeite!
    • Ik denk dat dit systeem van het toevoegen en verwijderen van oog-controllers nodig, deze oplossing voorkomt dat u van het hebben van te voren deze methoden.
    • Bent u zeker? Ik gebruikte om te wisselen bekijk de controllers op een vergelijkbare wijze voor en ik had altijd voor het doorsturen van berichten. Kunt u bevestigen anders?
    • Nee, ik ben niet zeker, maar ik neem aan dat, zolang u de bekijk controllers’ opvattingen als ze verdwijnen, en voeg ze toe als ze lijken, dat moet automatisch leiden tot viewWillAppear, viewDidAppear, en dergelijke.
  6. 0
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UINavigationController *viewController = (UINavigationController *)[storyboard instantiateViewControllerWithIdentifier:@"storyBoardIdentifier"];
    viewController.modalTransitionStyle = UIModalTransitionStylePartialCurl;
    [self presentViewController:viewController animated:YES completion:nil];

    Probeer Deze Code.


    Deze code geeft de Overgang van een controller naar een andere view-controller die het hebben van een navigation controller.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *