Frage

Ich folge iPhone dev Kurse von der Stanford Open-Universität, und ich habe für 2 Tage auf assignment3 , vielleicht jemand blockiert kann mir helfen hier?

Die Aufgaben sind:

  1. Erstellen Sie eine benutzerdefinierte UIView-Unterklasse, die Ihr PolygonShape Objekt
  2. angezeigt wird
  3. Geben Sie Ihre Ansichtsklasse Zugriff auf das PolygonShape Objekt, so dass es die Details des Polygons abrufen können je nach Bedarf

Das Problem ist: Wie gebe ich meine Ansicht Klasse Zugriff auf das Polygon-Objekt in meinem Controller definiert

Hier ist meine Implementierungen, ob es helfen kann:

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
War es hilfreich?

Lösung

Und nachdem Sie es herausfinden, es könnte nicht schaden, auf einigen Objective-C Grundlagen retuschieren:

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

Andere Tipps

meine eigene Antwort gefunden, vermisste ich eine setPolygon Methode in meinem Custom beide zu verbinden ... dumm ...

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

Ich habe gerade assignement 3 gestern Abend beendet. Ich löste diese Verbindung alle im Interface Builder. Zuerst habe ich einen Ausgang auf der „PolygonView“ UIView Unterklasse für die PolygonShape und verbunden dann auf die Instanz des Polygonmodells. Von dem, was ich in der Google-Gruppe und auf verschiedene anderen Seiten gelesen habe, glaube ich nicht, dass es nur ein richtiger Weg ist, diese UIView zu dem Modell und der Controller zu verbinden. Aber es funktionierte ich denke, es ist nichts falsch mit dem Blick über das Modell zu kennen.

Also, warum nicht Sie sie als Eigenschaften der Klasse deklarieren?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top