Domanda

Sto seguendo Corsi di sviluppo di iPhone da Stanford Open-University, e sono stato bloccato per 2 giorni su compito3 , forse qualcuno mi può aiutare qui?

I compiti sono:

  1. Crea una sottoclasse UIView personalizzata che visualizzerà il tuo oggetto PolygonShape
  2. Consenti alla tua classe di visualizzazione di accedere all'oggetto PolygonShape in modo che possa recuperare i dettagli del poligono secondo necessità

Il problema è: come posso consentire alla mia classe di visualizzazione di accedere all'oggetto poligono definito nel mio controller?

Ecco le mie implementazioni se può aiutare:

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
È stato utile?

Soluzione

E dopo averlo capito, potrebbe non far male ritoccare alcune nozioni di base sull'obiettivo c:

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

Altri suggerimenti

Trovato la mia risposta, ho perso un metodo setPolygon nel mio CustomView per collegare entrambi ... stupido ...

in CustomView.h :

#import "PolygonShape.h"

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

@property (readwrite, assign) PolygonShape *polygon;

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

@end

in CustomView.m:

@implementation CustomView

@synthesize polygon;

...

@end

in 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]);
} 

Ho appena finito l'assegnazione 3 ieri sera. Ho risolto questa connessione in Interface Builder. Per prima cosa ho creato uno sbocco sul "PolygonView" Sottoclasse UIView per PolygonShape e quindi connessa all'istanza del modello Polygon. Da quello che ho letto nel Gruppo Google e su vari altri siti, non penso che ci sia un modo giusto per collegare questo UIView al modello e al controller. Ma ha funzionato penso che non ci sia nulla di sbagliato nel View che conosce il modello.

Quindi perché non le stai dichiarando come proprietà della classe?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top