2014-02-08 3 views
0

У меня есть pickerview, который отображает массив местоположений (2 компонента); ниже 2 UILabels (по 2 под каждым компонентом).Получить label.text из UILabel в методе экземпляра iOS 7

Когда пользователь открывает приложение, сборщик по умолчанию использует первый объект в каждом массиве компонентов сборщика и изменяет метку ниже, чтобы отразить этот выбор.

Так это будет выглядеть примерно так:

|PickerComponent1|PickerComponent2| 

|  Label 1 |  Label 2 | 

Он отображает ярлыки правильно, если [viewDidLoad] называется. Ярлыки изменились на соответствующие имена.

Я создал метод экземпляра, но я не могу передать текстовое значение меток этому методу.

Журнал показывает (null), и он возвращается как пустой. Любые идеи о том, как я могу передать этот текст меток методу надлежащим образом?

* edit: если я поместил этот код, назначенный label1 и строку NSLog, в метод viewDidLoad, он соответствующим образом распечатает текст метки. Когда я помещаю это в метод, это не так.

Мои viewDidLoad в моем файле .m:

- (void)viewDidLoad 
{ 

    //set self as delegate for tripPicker 
    _tripPicker.delegate = self; 

    //Set size of tripPicker & datePicker 
    _tripPicker.transform = CGAffineTransformMakeScale(0.60, 0.60); 
    _datePicker.transform = CGAffineTransformMakeScale(0.60, 0.60); 

    //Call method to get array of school names (reusable) 
    MetaMiles *model = [MetaMiles schoolNameList]; 
    _schoolArray1 = (NSArray *)model; 
    _schoolArray2 = (NSArray *)model; 

    //Set date to current date 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
    [dateFormatter setDateFormat:@"MM/dd/yyyy"]; 
    _dateLabel.text = [NSString stringWithFormat:@"Date of trip: %@",[dateFormatter stringFromDate:self.datePicker.date ]]; 

    //Set selector method for datePicker so on the value change it updates the date 
    [self.datePicker addTarget:self action:@selector(updateLabelForDate:) forControlEvents:UIControlEventValueChanged]; 

    [super viewDidLoad]; 


    //Set labels to be appropriate schools 
    begSchoolLabel.text = [_schoolArray1 objectAtIndex:[_tripPicker selectedRowInComponent:0]]; 
    endSchoolLabel.text = [_schoolArray2 objectAtIndex:[_tripPicker selectedRowInComponent:1]]; 


    //Update the Mileage indicator to display miles between currently selected values 
    ML54AddMilesViewController *milesObject = [[ML54AddMilesViewController alloc]init]; 
    NSArray *currentMiles = [milesObject getMileage]; 
    NSLog(@"Current Miles first run: %@",currentMiles); 


} 

Мой метод getMileage:

- (NSArray *)getMileage { 
    //Update the Mileage indicator to display miles between currently selected values 
    NSString *begSchool = begSchoolLabel.text; 
    NSLog(@"FIRE THIS OFF : %@",begSchool); 
    NSString *endSchool = endSchoolLabel.text; 
    NSPredicate *milesFilter = [NSPredicate predicateWithFormat:@"beg_school=%@ AND end_school=%@", begSchool, endSchool]; 
    NSArray *resultMiles = [MetaMiles MR_findAllWithPredicate:milesFilter]; 
    if (!resultMiles || ![resultMiles count]) { 
     NSLog(@"Empty Array"); 
    } else { 
     NSLog(@"Our array is: %@", [resultMiles objectAtIndex:0]);} 
    return resultMiles; 
} 
+0

Это не должно даже компилироваться. Это ваш точный код? –

+0

Нет, это просто основная часть, которую я пытаюсь получить. Запишите значение метки. Но в журнале просто отображается Null – Hanny

+0

. Он отображает только null, если текстовое свойство метки равно null или если сам ярлык равен нулю. Вы уверены, что не пытаетесь получить доступ к этому свойству в какой-то момент до создания метки/текстового значения? –

ответ

0

То, что я в конечном итоге делает вместо этого использовать этикетку, чтобы получить текст - я только что его nab, что выбрал выборщик. Ярлык обновляется соответствующим образом, но по какой-то причине я не мог передать его между методами - иначе я мог это сделать.

Смежные вопросы