UISplitViewController par programmation sans plume/xib
J'ai l'habitude de créer mes projets sans IB-stuff. La première chose que je fais est d'enlever toutes les références à xibs, de points de vente mis à jour plist, etc et ainsi de suite. Pas de problèmes, fonctionne très bien (dans mon monde)!
Maintenant, je viens d'installer 3.2, et a essayé de développer ma première application iPad. En suivant la même procédure qu'avant, j'ai créé un UISplitView application basée sur le projet et dépouillé de tous IB-stuff. Aussi, j'ai suivi la section d'Apple dans la référence docs: La création d'un Split-Vue-Contrôleur par programmation, mais néanmoins, le Maître-vue n'est jamais montré, seulement le Détail de la vue est (peu importe ce que l'orientation est). J'ai vraiment essayé de regarder attentivement ce travers, mais je ne comprends pas ce que j'ai manqué.
Est-il un exemple de travail d'un UISplitViewController sans les plumes flottant autour de quelque part? J'ai cherché sur google mais impossible de trouver toutes les. Ou savez-vous ce que j'ai probablement raté?
- "J'ai l'habitude de créer mes projets sans IB-trucs." <- +1 pour l'. C'est la façon dont la programmation fonctionne, je le fais aussi. Vous rock!
Vous devez vous connecter pour publier un commentaire.
Déclarer votre splitviewcontroller dans votre délégué de l'en-tête, utiliser quelque chose comme ceci dans votre didfinishlaunching
vous assurer d'ajouter de la UISplitViewControllerDelegate à la detailedViewController fichier d'en-tête et que vous avez le délégué des méthodes aswell. n'oubliez pas d'importer pertinentes fichiers d'en-tête
ÉDITER en tant que par Scott excellente suggestion ci-dessous, n'ajoutez pas de windows sous-vue, au lieu
Je préfère aussi le code de l'IB 😉
detailViewController
va commande lerootViewController
qui est tout à fait acceptable :). Bien que dans ce cas, vous voudrez probablement pour renommer des variables à quelque chose qui correspond à votre conception (par exemple,listViewController
etmainViewController
pourrootViewController
etdetailedViewController
respectivement)Un peu vieux thread, mais je pensais que je serais de rechange lecteur de temps + le chagrin quand la technique ci-dessus ne parvient pas à produire un UISplitViewController qui répond correctement à l'appareil changement d'orientation d'événements. Vous aurez besoin de:
shouldAutorotateToInterfaceOrientation. Rien de nouveau ici.
Plutôt que d'ajouter la UISplitViewController la vue de la fenêtre principale,
à la place de la fenêtre principale de la racine du contrôleur à la UISplitViewController:
L'ajout de la splitviewcontroller est vue comme une sous-vue de la fenêtre principale (à peine) lui permet de co-présenter avec le frère de vues, mais il n'a pas voler avec UISplitViewController prévu de cas d'utilisation. Un UISplitViewController est un highlander vue; il peut seulement être un.
Que je venais de rencontrer le même problème.
assurez-vous que votre enfant viewController d'écran à double affichage splitview peuvent tourner automatiquement à l'interface de l'orientation.
vous pouvez modifier la fonction dans votre childViewController comme ceci:
alors le maître de la vue sera montré.
Swift 5.0 version (à la fois maître et vue de détail contrôleurs sont incorporés dans les manettes de navigation)
Vous pouvez mettre ce code dans votre AppDelegate de
didFinishLaunchingWithOptions
fonction. N'oubliez pas de faire lesplitViewController
votrerootViewController
comme ce