Question

Je suis cours de développement pour iPhone de Stanford. Open-University et je suis bloqué depuis 2 jours sur assessment3 , peut-être quelqu'un peut m'aider ici?

Les tâches sont les suivantes:

  1. Créez une sous-classe UIView personnalisée qui affichera votre objet PolygonShape
  2. Donnez à votre classe de vue l'accès à l'objet PolygonShape afin qu'il puisse récupérer les détails du polygone selon les besoins

Le problème est le suivant: comment donner à ma classe de vue l'accès à l'objet polygone défini dans mon contrôleur?

Voici mes implémentations si cela peut aider:

CustomView.h:

#import "PolygonShape.h"

@interface CustomView : UIView {
    IBOutlet PolygonShape *polygon;
}
- (NSArray *)pointsForPolygonInRect:(CGRect)rect numberOfSides:(int)numberOfSides;

@end

Controller.h:

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "PolygonShape.h"
#import "PolygonView.h"

@interface Controller : NSObject {
    IBOutlet UIButton *decreaseButton;
    IBOutlet UIButton *increaseButton;
    IBOutlet UILabel *numberOfSidesLabel;
    IBOutlet PolygonShape *polygon;
    IBOutlet PolygonView *polygonView;
}
- (IBAction)decrease;
- (IBAction)increase;
- (void)awakeFromNib;
- (void)updateInterface;
@end
Était-ce utile?

La solution

Et une fois que vous avez compris, il n’est peut-être pas mal de retoucher sur quelques notions de base de l’objectif c:

http://www.cocoacast.com/?q=node/103

Autres conseils

J'ai trouvé ma propre réponse, j'ai raté une méthode setPolygon dans mon CustomView pour lier les deux ... stupide ...

dans CustomView.h :

#import "PolygonShape.h"

@interface CustomView : UIView {
    IBOutlet PolygonShape *polygon;
}

@property (readwrite, assign) PolygonShape *polygon;

- (NSArray *)pointsForPolygonInRect:(CGRect)rect numberOfSides:(int)numberOfSides;

@end

dans CustomView.m:

@implementation CustomView

@synthesize polygon;

...

@end

dans Controller.m :

- (void)awakeFromNib { 
    // configure your polygon here 
    polygon = [[PolygonShape alloc] initWithNumberOfSides:numberOfSidesLabel.text.integerValue minimumNumberOfSides:3 maximumNumberOfSides:12];
    [polygonView setPolygon:polygon];
    NSLog (@"My polygon:  %@", [polygon description]);
} 

Je viens de terminer l’affectation 3 la nuit dernière. J'ai résolu cette connexion tout dans Interface Builder. J'ai d'abord créé un point de vente sur le fichier "PolygonView". Sous-classe UIView pour PolygonShape, puis connectée à l’instance du modèle Polygon. D'après ce que j'ai lu dans le groupe Google et sur divers autres sites, je ne pense pas qu'il existe un bon moyen de connecter cette UIView au modèle et au contrôleur. Mais cela a fonctionné, je pense qu’il n’ya rien de mal à ce que View ait connaissance du modèle.

Alors, pourquoi ne les déclarez-vous pas comme propriétés de la classe?

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