J'ai un UIButton
qui, lorsqu'on appuie dessus, fait apparaître une nouvelle vue où l'utilisateur peut modifier certains paramètres. Lorsque l'utilisateur quitte la vue, j'aimerais mettre à jour le titre/le texte de l'écran d'accueil. UIButton
pour refléter le nouvel état. J'appelle :
[myButton setTitle: @"myTitle" forState: UIControlStateNormal];
[myButton setTitle: @"myTitle" forState: UIControlStateApplication];
[myButton setTitle: @"myTitle" forState: UIControlStateHighlighted];
[myButton setTitle: @"myTitle" forState: UIControlStateReserved];
[myButton setTitle: @"myTitle" forState: UIControlStateSelected];
[myButton setTitle: @"myTitle" forState: UIControlStateDisabled];
Mais il ne semble jamais changer le texte/titre original tel que spécifié dans l'IB.
2 votes
Êtes-vous sûr que le code affiché est appelé ? Avez-vous placé un BREAKPOINT pour le prouver ? Pouvez-vous afficher la signature de votre délégué ?
3 votes
Par ailleurs, je crois que vous pouvez faire référence à plusieurs états de contrôle à la fois : [ myButton setTitle:@ "myTitle" forState :( UIControlStateNormal | UIControlStateApplication | UIControlStateHighlighted | ... ) ] ; Notez l'utilisation de l'opérateur OR bitwise par opposition à l'opérateur OR logique (||). En général, lorsque vous avez affaire à des états de ce type, vous pouvez effectuer un OU entre eux avec l'opérateur |. Que quelqu'un me corrige si je me trompe lourdement :)
0 votes
J'aimerais qu'il y en ait un comme UIControlStateAll :D
2 votes
Les combinaisons binaires ne semblent pas fonctionner pour moi dans iOS5.
0 votes
Même problème ici. Les combinaisons par bit ne fonctionnent pas pour moi sur iOS5. /CC @LucasTizma
0 votes
Je n'ai aucun problème pour combiner les états dans iOS 5 ou 6. N'oubliez pas que lorsque vous appuyez sur un bouton, son état est momentanément réglé sur
UIControlStateHighlighted | UIControlStateSelected
ce qui est logique lorsque vous appuyez sur la commande. Ensuite, son état est justeUIControlStateSelected
.