Я не уверен, если у меня есть вид контроллер в моем storyboard
файле, подключенного к моему правильно, но вот разбивка настройки - я использую xcode 5
:ViewController не обновляется UIView с пользовательским классом
One диспетчер просмотра с использованием настраиваемого класса CICBoostGaugeViewController
(настроен в инспекторе идентификации). Один вид с использованием пользовательского класса CICGaugeBuilder
(настроен в инспекторе идентификации в файле раскадровки).
Класс CICGaugeBuilder
рисует датчик и задает свойства датчика в методе init. Когда я запускаю эту настройку в симуляторе, датчик отображается правильно на основе параметров инициализированного датчика в CICGaugeBuilder
. На данный момент проблем нет.
Мой вопрос, когда я создаю экземпляр класса CICGaugeBuilder
на мой взгляд, контроллер и установить свойства, они не появляются, когда я запускаю его в сим, только значения инициализируются в CICGaugeBuilder
классе применяются.
CICBoostGaugeViewController.h
#import <UIKit/UIKit.h>
#import "CICGaugeBuilder.h"
@class CICGaugeBuilder;
@interface CICBoostGaugeViewController : UIViewController{
CICGaugeBuilder *boostGauge;
}
@property (nonatomic, retain) IBOutlet CICGaugeBuilder *boostGauge;
@end
CICBoostGaugeViewController.m
#import "CICBoostGaugeViewController.h"
#import "CICGaugeBuilder.h"
@interface CICBoostGaugeViewController()
@end
@implementation CICBoostGaugeViewController
@synthesize boostGauge;
- (void)viewDidLoad
{
[super viewDidLoad];
self.boostGauge.minGaugeNumber = 0;
self.boostGauge.maxGaugeNumber = 25;
self.boostGauge.gaugeLabel = @"Boost/Vac";
self.boostGauge.incrementPerLargeTick = 10;
self.boostGauge.tickStartAngleDegrees = 135;
self.boostGauge.tickDistance = 270;
self.boostGauge.menuItemsFont = [UIFont fontWithName:@"Helvetica" size:14];
self.boostGauge.value = 10;
}
- (void)viewDidUnload
{
//self.boostGauge = nil;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Это метод инициализации в классе CICGaugeBuilder:
self.minGaugeNumber = 0;
self.maxGaugeNumber = 100;
self.gaugeType = 2;
self.gaugeLabel = @"Boost/Vac";
self.incrementPerLargeTick = 10;
self.tickStartAngleDegrees = 135;
self.tickDistance = 270;
self.menuItemsFont = [UIFont fontWithName:@"Helvetica" size:14];
Обратите внимание, что maxGaugeNumber 100 сохраняется при запустить в симуляторе. Манометр рисует правильно, но проблема в том, что экземпляр объекта в контроллере представления не используется. Я пробовал [self.boostGauge SetNeedsDisplay]
, и это не сработало.
В моем файле раскадровки контроллер представления не имеет каких-либо ссылочных точек. Я думаю, что это должно быть связано с делегатом приложения, но я не уверен. Dragging
диспетчер представлений для делегата приложения не разрешает соединение.
Вот файл CICAppDelegate.h:
#import <UIKit/UIKit.h>
@class CICBoostGaugeViewController;
@interface CICAppDelegate : UIResponder <UIApplicationDelegate>{
UIWindow *window;
CICBoostGaugeViewController *viewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet CICBoostGaugeViewController *viewController;
@end