2010-12-12 33 views
0

Je pousse test2ViewController dans Test1ViewController.m,Le bouton de vue supplémentaire ne fonctionne pas

Test2ViewController *test2ViewController = [[Test2ViewController alloc] initWithNibName:@"Test2ViewController" bundle:nil]; 
[self.navigationController pushViewController:test2ViewController animated:YES]; 

dans Test2ViewController.m, insérer un sous-vue test3ViewController,

Test3ViewController *test3ViewController = [[Test3ViewController alloc] initWithNibName:@"Test3ViewController" bundle:nil]; 
[self.view addSubview:test3ViewController.view]; 

ma question, je veux pousser une nouvelle vue (test4ViewController) dans test3ViewController, mais l'action du bouton dans test3ViewController.view ne fonctionne pas

-(IBAction) goButtonAction:(id) sender { 
    Test4ViewController *test4ViewController = [[Test4ViewController alloc] initWithNibName:@"Test4ViewController" bundle:nil]; 
    [self.navigationController pushViewController:test4ViewController animated:YES]; 
} 

Il semble que le test3ViewController ne soit pas dans le flux de navigation, comment puis-je pousser une nouvelle vue sur une vue d'insertion? Test3ViewController n'a jamais été ajouté à la pile pour le contrôle navigationController.

Répondre

0

Si vous voulez pousser test4ViewController, alors vous devrez soit le faire à partir test2ViewController, ou utiliser les setViewControlers: animation: méthode de UINavigationController pour ajouter test3ViewController à la pile:

NSMutableArray *array = [NSMutableArray arrayWithArray:test2ViewController.navigationController.viewControllers]; 
[array addObject:test3ViewController]; 
[test2ViewController.navigationController setViewControllers:array animated:NO]; 
[test2ViewController.navigationController popToViewController:test3ViewController animated:NO]; 
+0

Merci pour votre suggestion. J'ai essayé ça. Mais cela ne fonctionne toujours pas. – Donny

+0

Etes-vous sûr que l'IBAction est appelée? – Jumhyn