J'ai un UINavigationController avec lequel l'utilisateur navigue. En poussant un UIViewController spécifique sur la pile de navigation, un bouton "settings" apparaît dans la barre de navigation. Lorsque l'utilisateur clique sur ce bouton, je souhaite retourner la vue/le contrôleur en cours, c'est-à-dire tout ce qui apparaît à l'écran, y compris la barre de navigation, dans une vue des paramètres.UIViewAnimation effectuée par un UIViewController appartenant à un UINavigationController?
J'ai donc un SettingsViewController que je voudrais utiliser depuis mon CurrentViewController qui réside dans une pile de navigationController.
Je reçois toutes sortes de comportements étranges en essayant de faire cela, les UIViews appartenant au SettingsViewController commenceront à s'animer, à glisser en place, les boutons de navigation se déplacer, rien ne se passe comme je le pense.
-(void)settingsHandler {
SettingViewController *settingsView = [[SettingViewController alloc] init];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight
forView:self.navigationController.view
cache:YES];
[self.navigationController.view addSubview:settingsView.view];
[UIView commitAnimations];
}
Les résultats ci-dessus dans les vues feuilletant correctement, mais les sous-vues du SettingsViewController sont tous positionnés dans (0, 0) et après la transition, ils « déclic » en place?
Est-ce parce que j'instancie et ajoute mes sous-vues dans viewDidLoad, comme ça?
- (void)viewDidLoad {
UIImageView *imageBg = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 460.0f)];
[imageBg setImage:[UIImage imageNamed:@"background.png"]];
[self.view addSubview:imageBg];
[imageBg release];
SettingsSubview *switchView = [[SettingsSubview alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 460.0f)];
[self.view addSubview:switchView];
[switchView release];
[super viewDidLoad];
}
1: Comment dois-je faire correctement la transition « flip », à partir du UIViewController dans le UINavigationController, à une nouvelle UIViewController et par la suite de la nouvelle UIViewController et retour à l ' « original » UIViewController résidant sur la pile UINavigationControllers? 2: Dois-je utiliser une approche différente de la méthode "viewDidLoad" lors de l'instanciation et de l'ajout de sous-vues à un UIViewController?
-question 2 est plus une «meilleure pratique» chose. J'ai vu différentes façons de le faire et j'ai du mal à trouver ou à comprendre la documentation du cycle de vie et les différents sujets et messages sur le sujet. Il me manque les exemples de «meilleures pratiques».
Merci beaucoup pour toute aide donnée :)
Merci cduhn. C'était une très bonne explication et un parfait exemple. – RickiG