Dans une interminable effort pour en savoir plus sur le développement iphone, j'ai été jouer avec certains de la disposition du code source par le biais de pommes développeur de site web. L'exemple particulier, je travaille avec est de Base de Données de Livres, trouvé ici. Le DetailViewController, et la AddViewController sont faites par programmation, car il n'y a pas xib fichiers pour eux. Ma question est sur par programmation d'ajouter des choses à vue sans l'aide de l'IB. Je veux mettre un UISwitch sous la UITableView qui a les informations détaillées à propos d'un livre en particulier dans la fenêtre detravail. Comment dois-je faire? C'est ce que j'ai essayé jusqu'à présent:
Dans le AddViewController, j'ai installé le UISwitch:
@interface AddViewController : DetailViewController {
id <AddViewControllerDelegate> delegate;
UISwitch *onoff;
}
@property (nonatomic, assign) id <AddViewControllerDelegate> delegate;
@property (nonatomic, retain) IBOutlet UISwitch *onoff;
J'ai aussi l'installation d'une IBAction:
- (IBAction)flip:(id)sender;
Puis-je en faire la synthèse, dans le AddViewController.m fichier, mais rien ne se passe. J'ai juste besoin d'installation de l'interrupteur et de faire en sorte que je peux contrôler ce qu'il fait à partir de mon IBAction que j'ai de l'installation. Je sais que c'est trop simple, mais je ne peux pas le comprendre. Ainsi, toute aide serait appréciée! Merci
Edit 1
J'ai donc mis en place le code que j'ai été dirigé vers dans le viewDidLoad, comme suit:
- (void)viewDidLoad {
[super viewDidLoad];
UISwitch *onoff = [[UISwitch alloc] initWithFrame: CGRectZero];
[onoff addTarget: self action: @selector(flip:) forControlEvents:UIControlEventValueChanged];
// Set the desired frame location of onoff here
[self.view addSubview: onoff];
Et il jette deux mises en garde en disant que le local de la déclaration de "onoff" se cache la variable d'instance. Mais même si il y a de ces gains, le UISwitch s'affiche très bien, mais quand je le déplacer ou l'utiliser, il ne regarde pas comme il fonctionne pleinement. Pour mon action qui ressemble à ceci:
- (IBAction)flip:(id)sender {
if (onoff.on) NSLog(@"On");
else NSLog(@"Off");
}
Chaque fois que le commutateur est activé, la console devrait le lire, et quand éteint, la console devrait lire. Droit? Chaque fois que je le déplacer, il suffit de le répète, dans la console, off. Si son sur, ou si son off, il ne s'affiche off. Ce qui dans le monde je fais mal? S'il vous plaît aider! Merci