Est-il possible de coder en dur les IBAction
s et IBOutlet
s dans le code, au lieu de les faire glisser en les connectant dans Interface Builder?Pouvez-vous coder IBActions et IBOutlets, plutôt que de les faire glisser manuellement dans Interface Builder?
8
A
Répondre
16
Oui, il est poosible ...
exemple de code
UIButton *btnDetail = [UIButton buttonWithType:UIButtonTypeRoundedRect] ;
[btnDetail setFrame:CGRectMake(250.0f, 15.0f, 65.0f, 20.0f)] ;
//btnDetail.backgroundColor = [UIColor grayColor];
[btnDetail setTitle:@"Detail" forState:UIControlStateNormal];
[btnDetail setTitleColor: [UIColor redColor] forState: UIControlStateNormal];
[btnDetail.titleLabel setFont:[UIFont fontWithName:@"Verdana" size:12]];
[btnDetail setBackgroundColor:[UIColor clearColor]];
[btnDetail sizeThatFits:btnDetail.frame.size];
[self.view addSubview:btnDetail];
//IBAction
[btnDetail addTarget:self
action:@selector(ShowSavingAccountDetail:)
forControlEvents:UIControlEventTouchUpInside];
[btnDetail setImage:[UIImage imageNamed:@"btn-detail.png"] forState:UIControlStateNormal];
14
Le concept et le but unique de IBAction et IBOutlet est de fournir Interface Builder avec des moyens pour connecter le xib avec votre code. Si vous ne voulez pas utiliser Interface Builder avec votre code, vous n'avez pas besoin d'IBAction ou d'IBOutlet, vous avez seulement besoin d'utiliser des objets (boutons, champs de texte, etc.) qui ont été instanciés dans votre xib à partir de votre Des classes. Cela dit, la réponse de mihirpmehta est la manière correcte d'ajouter par programmation des éléments d'interface utilisateur à votre vue et d'y ajouter des actions.
Je ne sais pas si cela compte ou non (parce que je suis nouveau), mais j'ai dû déplacer les parties IBAction derrière le message à l'affichage pour ajouter le bouton. Puis confirmé qu'il travaillait avec un message NSLog confirmant qu'il avait été pressé. J'ai attaché un expéditeur.selected == OUI puis j'imprime autre chose et ainsi de suite. – natur3