Question

Quelqu'un at-il eu de chance en utilisant un UIPicker dans le SDK 3.2? Je suis au milieu de portage d'une application iPhone sur un iPad et c'est une chose que je ne peux pas sembler se rendre au travail. J'ai essayé ...

-Créer une feuille d'action, ajouter le sélecteur comme un sous-vue et l'afficher.

-Créer cette feuille d'action ci-dessus, ce qui en fait le point de vue d'un ViewController générique, ajoutant que VC à un UIPopover

-Faire juste le sélecteur de la vue d'un ViewController générique, ajoutant que VC à un UIPopover

Avec la feuille d'action, il ne tente même pas de le dessiner. Dans la vue popover il tente de tirer, mais ne soit pas rendu correctement.

Je voulais juste vérifier si quelqu'un a accompli cela et si oui, comment.

Merci à tous!

Était-ce utile?

La solution

Je suis l'auteur du tutoriel mentionné ci-dessus. Pour un sélecteur de travailler dans un popover et ajoutez la valeur sélectionnée à la zone de texte dans la vue principale, vous devez utiliser des protocoles. J'ai créé un exemple de projet pour le montrer. Je vais créer un tutoriel sur ce sujet bientôt.

Projet échantillon

Autres conseils

Je viens de mal à comprendre ce pendant environ 24 heures et ai eu à travailler en suivant ce tutoriel et où il mentionne son UITableView, pensez à votre UIPickerView et de remplacer les informations appropriées.

Matthew Casey - Tutoriel: introduction à Pop Over Control sur iPad

En bref, sur l'iPad, la seule façon que vous pouvez montrer un sélecteur est dans un contrôle popover. Le partage des données entre le contrôleur de vue du contenu du popover (le contrôleur de vue de la vue du sélecteur) et le contrôleur principal de vue de l'application est le peu que je ne pouvais pas comprendre. (À savoir obtenir la méthode « didSelectRow » pour affecter un objet dans votre contrôleur principal de vue, par exemple un UITextField ou UIButton. Du sélecteur) Ceci est géré par la création d'un protocole personnalisé pour transmettre la méthode « didSelectRow » au contrôleur principal de la vue.

Je ne suis nullement un expert à ce genre de choses, alors je suis allé étape par étape avec ce tutoriel et travaillèrent à la fin. Avant de trouver ce tutoriel, je suis perdu. (Je PORTAGE aussi sur une application iPhone pour iPad.)

Si vous voulez partager des données entre les contrôleurs de vue ... la solution est le NSNotificationCenter.

Je sais que cela ne répond pas à la question dans son ensemble, mais si je veux partager des données entre les contrôleurs de vue: Dans le contrôleur de vue d'envoyer

NSMutableDictionary *toshare = [[NSMutabledictionary alloc] init];
[toshare setValue:valueToShare forKey:@"shared"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"imSharing" withObject:nil userInfo:(NSDictionary *)toshare];

Dans le contrôleur de vue de la réception: Place dans le viewDidLoad

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(imSharing:) name:@"imSharing" object:nil];

puis ajoutez cette fonction:

-(void)imSharing:(NSNotification *)notification {
      NSDictionary *dictionary = [notification userInfo]; 
        //do something with [dictionary objectForKey:@"shared"];
        dictionary = nil;
}

Cela fonctionne pour le partage de données entre 2 contrôleurs vue ... eh bien, de petites quantités de données de toute façon.

Sinon regardez ici pour plus sur le partage des données entre la vue contrôleurs

Utilisez-vous Interface Builder? Il est beaucoup plus facile de créer une nouvelle sous-classe UIViewController dans Xcode avec le fichier nib, puis faites glisser dans la UIPicker. Ensuite, vous devez présenter le contrôleur de vue dans un popover. feuilles d'action ne sont pas conçus pour avoir des sous-vues, il ne faut pas le faire.

je l'ai fait: voir la troisième capture d'écran dans C64 Peinture

.

Merci pour tout le monde réponses. Ainsi, alors que je ne peux pas dire quel est le problème initial était, j'ai commencé le problème à partir de zéro et il se met au travail. J'ai fait complètement nouveaux contrôleurs de vue et les afficher dans un Popover et cela a bien fonctionné. Semble être l'un des points plus difficiles de faire une application universelle.

Le UIPickerView fonctionnera si vous créez sur l'iPad si vous créez comme ceci:

UIPickerView* pickerView = [[UIPickerView alloc]initWithFrame: CGRectMake (someX, someY, 320, 216)];

D'autres tailles ne semblent fonctionner. Mais CGRectZero ne fonctionne pas sur l'iPad -. Même si elle fonctionne dans l'iPhone

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top