J'ai un Le résultat: self.view.tag p> ViewController CODE> destiné à être réutilisable et un nombre arbitraire d'instances sera enchaîné dans un
NavigationController code> dans Storyboard, tous partageant le même modèle en tant que délégué. p>
ViewController code> doit indiquer le modèle dans lequel ils sont. Actuellement, ils ont une propriété d'intensité de la SEGUE, mais elle ne semble pas très idiomatique et ne se prête pas à avoir plusieurs instances à l'écran (pour iPad). Je pense qu'il doit être un moyen plus propre de le faire, alors quelqu'un sache-t-il ce qu'il est? Merci. P>
4 Réponses :
Un UIVIEWCONTROLLER'S UIView a une propriété Mise à jour Vous pouvez simplement implémenter un identifiant unique pour un UIViewController à l'aide d'une catégorie. P> Tag code> que vous pouvez définir depuis n'importe où que vous souhaitiez. Vous pouvez également identifier simplement le type du contrôleur en utilisant
[auto classe] code>. Ou utilisez simplement l'emplacement de la mémoire en référençant directement le contrôleur. P>
L'identifiant code> code> avait l'air prometteur, mais il ne semble pas en fait une propriété d'UIViewController. Ce sont des instances de la même classe, donc [auto-classe] code> ne fonctionnera pas et que l'emplacement de la mémoire change si le contrôleur est défini et réaffecté.
@mgold Oh, s'avère qu'il n'y a aucun identifiant dans le contrôleur. Étrange, car Xcode l'a montré dans l'IB. Je vous recommanderais de la mettre en œuvre vous-même, en utilisant un protocole que tous les contrôleurs mettent en œuvre. Aussi: Identifiant CODE> est également parti une fois que vous avez déroulé, et je suis sûr que les adresses de mémoire ne se décalent jamais pendant les opérations normales.
C'est fondamentalement ce que je fais, mais je ne trouve pas un bon moyen de définir l'identifiant. L'utilisation d'un champ dans Storyboard / IB serait idéal puisque les instances sont déjà aménagées.
Le uiview code> (
[Vue du contrôleur] code>) a une propriété
étiquette code> que vous pouvez utiliser (et probablement définie dans l'IB). Ceci est un
nsinteger code>
@Till il ne semble pas avoir une propriété code> code>. La chose la plus proche est titre code>, mais je recherche un équivalent lisible par machine (idéalement et INT qui peut être utilisé pour indexer et
nsarray code>). EDIT: Oh, la vue elle-même. Va regarder dans. Documentation UIViewController
@mgold mon mauvais, je n'ai pas correctement modifié la publication - veuillez recharger et voir si cela a plus de sens maintenant.
@Tomvanderwoerdt Oui, j'aurais dû faire ça en premier lieu. Veuillez accepter mes excuses. Gee, vous savez, je sentais que vous étiez si étroit avec votre réponse que la corrigeant cela le ferait parfaitement.
@Till on dirait que cela fonctionnera, mais j'aurai besoin de quelques minutes pour la coder et s'assurer. Une autre raison d'ajouter votre propre réponse est que je peux l'accepter et vous donner crédit.
Je suppose que la manière "la plus propre" en termes d'architecture de conception serait peut-être une gamme de fichiers de vue. (Cela pourrait être géré dans le délégué de l'application.) Cependant, il existe des considérations de mémoire - sur l'iphone, vous voudrez probablement créer et détruire les contrôleurs d'affichage au besoin. Le tableau pourrait contenir le identifiant code> et peut-être d'autres informations relatives à un modèle afin de recréer les contrôleurs selon les besoins. P>
Dommage, il n'y a pas de propriété storyboardIdentifier code> de UIViewController. Ils peuvent être instanciés avec cet identifiant, mais il serait utile que la mentalité de vue puisse interroger son identifiant. P>
J'ai récemment couru dans cela. Je pensais que vous pouvez ajouter un "ID de restauration" dans le storyboard. Ensuite, vous pouvez y accéder peut-être comme ceci (selon votre cas d'utilisation)