Я написал следующий код для хранения переменных в классе для последующего доступа из другого класса:
SettingsController.h
@interface SettingsController : NSObject
@property (nonatomic) BOOL isHighway;
@property (nonatomic) BOOL isToll;
@property (nonatomic) BOOL isVoiceNavigation;
@property (nonatomic) BOOL isVoiceCommand;
-(id)initWithHighway:(BOOL)_isHighway;
-(id)initWithToll:(BOOL)_isToll;
-(id)initWithVoiceNavigation:(BOOL)_isVoiceNavigation;
-(id)initWithVoiceCommand:(BOOL)_isVoiceCommand;
-(BOOL)isHighwayOn;
-(BOOL)isTollOn;
-(BOOL)isVoiceNavigationOn;
-(BOOL)isVoiceCommandOn;
@end
SettingsController.m
@implementation SettingsController
@synthesize isHighway,isToll,isVoiceNavigation,isVoiceCommand;
-(id)initWithHighway:(BOOL)_isHighway{
if ((self = [super init])) {
self.isHighway = _isHighway;
}
return self;
}
-(id)initWithToll:(BOOL)_isToll{
if ((self = [super init])) {
self.isToll = _isToll;
}
return self;
}
-(id)initWithVoiceNavigation:(BOOL)_isVoiceNavigation{
if ((self = [super init])) {
self.isVoiceNavigation = _isVoiceNavigation;
}
return self;
}
-(id)initWithVoiceCommand:(BOOL)_isVoiceCommand{
if ((self = [super init])) {
self.isVoiceCommand = _isVoiceCommand;
}
return self;
}
-(BOOL)isHighwayOn{
return self.isHighway;
}
-(BOOL)isTollOn{
return self.isToll;
}
-(BOOL)isVoiceNavigationOn{
return self.isVoiceNavigation;
}
-(BOOL)isVoiceCommandOn{
return self.isVoiceCommand;
}
@end
Из моего класса SettingsViewController я инициализирую значения следующим образом:
SettingsController *settingsController = [[SettingsController alloc] initWithHighway:isHighways];
и обращаюсь к ним как
BOOL isHighway = [settingsController isHighwayOn];
Но если я пытаюсь получить доступ к этой переменной из другого класса,RouteViewController выглядит следующим образом:
SettingsController *settingsController = [[SettingsController alloc] init];
BOOL isHighway = [settingsController isHighwayOn];
Это всегда дает мне 0
, а я никогда не получаю 1
.
Может ли кто-нибудь помочь мне в доступе к этим переменным?
РЕДАКТИРОВАТЬ
ОК, я удалил SettingsController
и перенес его интерфейс на RouteViewController
.Я инициализирую с SettingsViewController
следующим образом:
RouteViewController *routeController = [[RouteViewController alloc] initWithHighway:isHighways];
и затем обращаюсь к нему из RouteViewController просто:
NSLog(@"Highway: %d",self.isHighway);
Даже тогда это всегда дает мне 0
никогда 1
.
РЕДАКТИРОВАТЬ
Для того, чтобы просто поддерживать эти 4 UISwich в моем SettingsViewController, я сейчас использую NSUserDefaults.Я думаю, что это лучший способ сделать это ... Спасибо за вашу помощь ...