У меня есть 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;
}
Это не должно даже компилироваться. Это ваш точный код? –
Нет, это просто основная часть, которую я пытаюсь получить. Запишите значение метки. Но в журнале просто отображается Null – Hanny
. Он отображает только null, если текстовое свойство метки равно null или если сам ярлык равен нулю. Вы уверены, что не пытаетесь получить доступ к этому свойству в какой-то момент до создания метки/текстового значения? –