/ / Przedstawiony na iOS UINavigationController zostaje odrzucony po wykonaniu popViewController - ios, objective-c, uiviewcontroller, uinavigationcontroller

iOS prezentuje UINavigationController zostaje zwolniony po wykonaniu popViewController - ios, target-c, uiviewcontroller, uinavigationcontroller

W mojej aplikacji przedstawiam UINavigationController modalnie z a UIViewController jako jego rootViewController. Robię to w formie formy. Dodałem drugi UIViewController który jest również w stylu formy i mogę go dobrze popchnąć. Jednak kiedy wykonuję popViewController akcja po sekundzie UIViewcontroller zostaje wrzucony na pierwszy, całość prezentowana modalnie UIViewController zostaje zwolniony. Jednak nie wykonuję żadnego odrzucania, a funkcja odrzucania też nie jest uruchamiana przez przypadek.

Jakieś pomysły, dlaczego to się dzieje?

Z poważaniem,

Zoli

EDYTOWAĆ:

W ten sposób prezentuję kontrolery widoku modalnego za pomocą kontrolera nawigacyjnego:

if(!welcomeScreenAlreadyPresented) {

welcomeScreenViewController = [[WAWelcomeViewController alloc]init];
}

welcomeScreenNavController = [[UINavigationController alloc]initWithRootViewController:welcomeScreenViewController];
[welcomeScreenNavController setModalTransitionStyle: UIModalTransitionStyleCrossDissolve];
[welcomeScreenNavController setModalPresentationStyle:UIModalPresentationFormSheet];
[welcomeScreenNavController setNavigationBarHidden:YES animated:NO];

[self.navigationController presentViewController:welcomeScreenNavController animated:YES completion:nil];

Tak nawiguję w WAWelcomeViewController.m

registerViewController = [[WARegisterViewController alloc]init];

[self.navigationController pushViewController:registerViewController animated:YES];

A w WARegisterViewController.m tak właśnie wracam

[self.navigationController popViewControllerAnimated:YES];

Odpowiedzi:

1 dla odpowiedzi № 1

To, co musisz zrobić, to umieścić viewController, który chcesz wepchnąć do innego UINavigationController.

registerViewController = [[WARegisterViewController alloc]init];
UINavigationController *modalNavigationController = [[UINavigationController alloc] initWithRootViewController:registerViewController]; // autorelease if you are not using ARC

[self presentViewController:navController animated:YES completion:^{}];

Możesz dodać modalNavigationController jako własność do późniejszego połączenia popViewControllerAnimated: na tym.