Je suis dans une situation où je pense que je suis proche de résoudre, mais peut-être pas.
J'ai une vision de la TableView des cellules de la table personnalisées. P>
Actuellement, chaque TableViewCell a 3 UIBUTTONTTTÔLES, l'accès à eux et leur donner des fonctionnalités n'est pas un problème. P>
L'un des 3 boutons que j'ai des problèmes. Le bouton pousse l'utilisateur du contrôleur de navigation actuelle à un contrôleur WebView, mais je veux le contrôleur WebView pour être l'adresse http la cellule tableview actuelle tient. P>
Heres une petite snippit du code que je suis en utilisant. p> J'ai vu d'autres critiques sur la même question, mais comme je l'ai dit, j'ai juste besoin de passer un paramètre à un sélecteur, je comprends que ce n'est pas possible, Mais quelles autres façons puis-je aller sur ce problème? P> Peut-être que ma question est mal formulée: /. p> Toute aide sera excellente :) p> EDIT: Je comprends [Cell.Buyticketoulet addTtarget: Auto Action: @Selector (Pushtoticketturl: String) Forcontrolvents: UicontroleventTouchinIide]; < / code> donne des erreurs. Mais quel ouvrage puis-je coder pour faire ce que je veux? P> p>
4 Réponses :
Vous avez juste besoin Fondamentalement : code> lorsque vous passez le paramètre sur un sélecteur Si vous devez passer un paramètre.
: CODE> signifie que vous passe une argumentation au sélecteur et sur la fin de la réception, vous pouvez définir votre méthode de sélecteur avec l'objet. P> P>
Je ne le savais pas. C'est soigné. Merci pour le conseil.
Comment cela répond-il à la question?
Qu'est-ce qui vous fait penser qu'il ne sert pas au but de résoudre le problème? Cet endroit est à l'aide dans les numéros de ne pas écrire tout le code, OP avait un problème dans le paramètre de passage à un sélecteur si vous avez lu la question avec soin.
Bien que vous ne puissiez pas transmettre l'URL directement sur le sélecteur, vous pouvez transmettre le bouton lui-même. Donc, ma suggestion serait de baliser le bouton en fonction de votre ligne de cellule et de créer une action comme celle-ci: puis, dans cette méthode, vous pouvez "rechercher" URL de la cellule avec le nombre égal à Tag du bouton. P> Autre que cela, je suis assez sûr qu'il est impossible de passer des paramètres personnalisés ou de plusieurs paramètres dans le sélecteur de bouton. S'il vous plaît corrigez-moi si je me trompe. P> espère que cela aide. P> p>
J'ai pris votre conseil et j'ai trouvé un lien droit au code de faire exactement ce que vous avez dit. Ça a marché :)
Malheureusement, ma réputation ne me permet pas de commenter d'autres réponses. JSetting32, l'extrait du code que vous avez fourni est bien génial et est une meilleure façon de le faire, que de faire des étiquettes. Grand travail ^^ En ce qui concerne l'argument ci-dessous, Rob Napier a fait un bon point. J'utiliserais réellement son approche avec de grandes structures de données, car il est beaucoup plus organisé. Mais depuis que vous avez fini par utiliser superview au lieu de tags, je dirais de ne rien changer. C'est génial comme - est!
L'approche de FDMitry n'est pas mauvaise et, mais il y a de meilleures façons d'Objc moderne. En utilisant des objets associés, vous pouvez attacher des objets arbitraires (c'est-à-dire votre URL) à d'autres objets (c'est-à-dire votre bouton). Vous pouvez demander à l'expéditeur (le bouton) pour l'URL et le traiter. Voici une façon de le faire: avec cela, après avoir importé votre catégorie, vous pouvez appeler [bouton SETMYURL:] code> pour définir l'URL sur le bouton. Vous pouvez ensuite utiliser
[expéditeur myurl] code> pour le récupérer dans l'ibaction. P> p>
De quel côté est le meilleur? En fait, je viens de terminer la tâche en utilisant l'idée de FDMitry et j'ai trouvé plusieurs liens qui m'ont permis de mettre en œuvre son pseudo commentaire :). Mais votre solution est-elle plus efficace? J'aimerais essayer de faire votre chemin aussi mais est-ce nécessaire, d'aller le chemin de votre suggestion? Et quand vous voulez dire plus moderne, voulez-vous dire que les développeurs Apple vont généralement avec votre chemin? Merci pour votre aperçu :)
Le juge de "mieux" est la maintenabilité et la lisibilité ici. Le faire avec une balise met la liste des URL dans l'ibaction. L'utilisation d'objets associées met la logique au point que vous créez la vue. Objets associés Supprimez le besoin d'un mappage de «nombre aléatoire» (étiquette) à URL car ils attachent directement la vue à l'URL. Dans la plupart des cas, plus facile à lire et à entretenir. Mais cela ne signifie pas que les étiquettes ne sont pas erronées si elles fonctionnent bien (les balises ont l'avantage d'être réglable dans IB). L'efficacité à ce niveau n'est pas pertinente; Faites ce qui rend votre code facile à comprendre.
Quand je dis "moderne," je veux dire "depuis 10.6 et iPhoneos 3.1." Donc, au cours des 4 dernières années environ. Si vous maintenez des choses plus âgées que cela (comme je le fais), les objets associés peuvent ne pas être disponibles.
Ahh je gocha, alors j'imagine quelque chose comme un iPhone 3 en utilisant mon code ne fonctionnerait pas?
L'iPhone 3G peut courir jusqu'à IOS 4, de sorte que cela irait bien. iPhoneoS a été le nom d'iOS avant iOS 4. (Il n'y a jamais eu d'appareil appelé "iPhone 3.")
... et l'iPhone d'origine peut fonctionner jusqu'à iPhoneOs 3.1.1, vous pouvez donc toujours prendre en charge tous les appareils avec cela.
Se référant à la réponse de FDMitry,
Voici le code complet que j'ai utilisé pour son explication. Cela fonctionne phénomèquement :). Merci à l'Omar Abdelhafith, dont le lien m'a aidé, et Fdmitry pour me procurer la bonne voie :) p> Cet extrait de code m'a aidé tellement et espérons que cela aide Quelqu'un d'autre qui tombe dans le même problème :). p> p>
Ah, vous avez collé les données sur la cellule elle-même. Je serais dans mon esprit que chaque bouton avait besoin d'une URL séparée. Votre approche ici est tout simplement bien et très facile à entretenir.
C'est un peu fragile - il s'appuie sur la hiérarchie de vue du bouton