У меня есть собственный класс Uiswitch, ничего особенного, заголовок выглядит так:
#import <Foundation/Foundation.h>
@class Course;
@class Student;
@interface AttandanceSwitch : UISwitch
@property (strong,nonatomic) Course *course;
@property (strong,nonatomic) Student *student;
@property (strong,nonatomic) UISwitch *originalSwitch;
-(id)initWithSwitch:(UISwitch *)newSwitch Student:(Student *)student andCourse:(Course *)course;
-(NSString *) description;
@end
.m файл выглядит следующим образом:
#import "AttandanceSwitch.h"
#import "Course.h"
#import "Student.h"
@implementation AttandanceSwitch
@synthesize course,student,originalSwitch;
-(id)initWithSwitch:(UISwitch *)newSwitch Student:(Student *)studentP andCourse:(Course *)courseP
{
self = [super init];
self.course = courseP;
self.student = studentP;
self.originalSwitch = newSwitch;
[self.originalSwitch setOn:YES];
return self;
}
-(NSString *) description
{
return [NSString stringWithFormat:@"Student: %@, Course: %@, Switch: %@",student.name,course.name,[originalSwitch description]];
}
@end
Так в чем же проблема - когда я создаю новый объект этого класса с помощью initWithSwitch, я не могу установить значение originalSwitch. Я даже пытался установить его статически (см. Self.originalSwitch setOn: YES выше), но даже если я это сделаю, переключатель все еще выключен.
Буду очень признателен за любые идеи о том, как заставить это работать ...
это выдержка из использования этого класса в tableviewcell:
UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero];
[switchView addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventTouchUpInside];
AttandanceSwitch *customSwitch = [[AttandanceSwitch alloc] initWithSwitch:switchView Student:student andCourse:courseToTrack];
Студент и курс хорошо заполняются.