J'ai une application avec un UINavigationController qui contient une sous-classe racine UIViewController (PagingViewController) qui gère et agit en tant que délégué pour une UIScrollView de pagination horizontale. Sur chacune des pages de ce UIScrollView, il y a un UITableView à défilement vertical, chacun étant géré par sa propre sous-classe UIViewController (PageViewController). Il ressemble à quelque chose comme ça ...UIViewController imbriqué doit pousser sur la racine UINavigationController
UINavigationController
PagingViewController (root VC of navigation controller)
PageViewController (instance 1)
PageViewController (instance 2)
PageViewController (instance 3)
HowToPushThisViewController (this is what I'd like to push onto the current root, PagingViewController, from one of its sub view controllers)
Ce que je voudrais faire est, dans la didSelectRowAtIndexPath: méthode du PageViewController (délégué UITableView), appuyez une nouvelle UIViewController sur le UINavigationController (au-dessus de la PagingViewController).
Le problème est que la propriété navigationController du PageViewController est nulle, donc je ne peux pas l'y pousser. Je suppose que c'est nul parce que ce n'est pas DIRECTEMENT sur la pile UINavigationController, mais contenait par le PagingViewController qui est sur la pile. J'ai essayé de définir la propriété navigationController de chaque PageViewController avant de l'ajouter à PagingScrollView, mais il semble être en lecture seule (Comment UINavigationController se configure-t-il?). J'ai l'impression que l'UIViewControllers imbriqué est une architecture sonore (chacun est nécessaire pour gérer et agir en tant que délégué pour ses vues), et il est raisonnable de vouloir pousser la navigation à partir d'un contrôleur secondaire, donc je ne suis pas sûr du meilleur pratique pour accéder et pousser depuis le contrôleur imbriqué. J'espère qu'il y a quelque chose de simple que je néglige d'accéder et de pousser sur le contrôleur de navigation racine.
Vous pouvez également remplacer '-parentViewController'. Cela semble permettre à une partie de la magie de UIViewController de fonctionner, y compris (je pense) -navigationController. Icky, cependant! –