Passando objecto a partir do controlador para uma vista
-
19-08-2019 - |
Pergunta
Eu estou seguindo iPhone cursos dev de Stanford Open-Universidade, e eu tenho sido bloqueado por 2 dias na assignment3 , talvez alguém pode me ajudar aqui?
As tarefas são:
- Criar uma subclasse UIView personalizado que irá exibir o seu objeto PolygonShape
- Dê seu acesso de classe vista para o objeto PolygonShape para que ele possa recuperar os detalhes do polígono conforme necessário
O problema é:? como faço para dar o meu acesso de classe vista para o objeto polígono definido no meu controlador
Aqui está o meu implementações se ele pode ajudar:
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
Solução
E depois que você descobrir isso, ele não pode ferir para retocar em algumas noções básicas de Objective-C:
Outras dicas
Encontrado minha própria resposta, eu perdi um método setPolygon na minha CustomView vincular tanto ... estúpido ...
em CustomView.h :
#import "PolygonShape.h"
@interface CustomView : UIView {
IBOutlet PolygonShape *polygon;
}
@property (readwrite, assign) PolygonShape *polygon;
- (NSArray *)pointsForPolygonInRect:(CGRect)rect numberOfSides:(int)numberOfSides;
@end
em CustomView.m:
@implementation CustomView
@synthesize polygon;
...
@end
em 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]);
}
Acabei de terminar assignement 3 última noite. Eu resolvi esta conexão tudo em Interface Builder. Primeiro eu criei uma tomada no "PolygonView" UIView subclasse para o PolygonShape e, em seguida, conectá-lo à instância do modelo Polygon. Pelo que eu li no Grupo Google e em vários outros sites, eu não acho que há um caminho certo para conectar esta UIView com o modelo eo controlador. Mas funcionou Eu acho que não há nada de errado com a Ver saber sobre o modelo.
Então, por que você não está declarando-os como propriedades da classe?