2014-09-04 2 views
0

Я использую modal segue для передачи данных из SignUpViewController в RAVerificationViewController. По какой-то причине мое имя, пароль, телефон и значения электронной почты равны нулю, но отображаются общедоступные и ролевые варианты (они являются значениями, выбранными из сборщика). Я вижу, что они передаются правильно с первого контроллера представления, но они не отображаются в следующем. Помогите!PrepareForSegue Не пропускает все данные?

- (void)prepareForSegue:(UIStoryboardPopoverSegue *)segue sender:(id)sender { 
    NSLog(@"prepareForSegue: %@", segue.identifier); 
    if ([segue.identifier isEqualToString:@"signUpToRAVerification"]) { 
     RAVerificationViewController *ravc = (RAVerificationViewController *)segue.destinationViewController; 
     NSInteger roleRow = [_rolePickerChoice selectedRowInComponent:0]; 
     NSString *role = [self pickerView: _rolePickerChoice titleForRow:roleRow forComponent:1]; 
     ravc.role = role; 
     NSString *email = _emailOneField.text; 
     ravc.name = _nameField.text; 
     ravc.password = _passwordTwoField.text; 
     ravc.email = email; 
     ravc.phoneNumber = _phoneNumberField.text; 
     NSInteger dormRow = [_dormPickerChoice selectedRowInComponent:0]; 
     NSString *dorm = [self pickerView: _dormPickerChoice titleForRow:dormRow forComponent:1]; 
     ravc.dormChoice= dorm; 
    } 
} 

Что я делаю с данными в другой VC:

if([_raCodeField.text isEqualToString:code]) { 
     NSLog(@"The email is: %@", email); 
     //RA good to go, let's save him/her in our DB! 
     PFUser* user = [PFUser user]; 
     user[@"role"] = _role; 
     user[@"Name"] = name; 
     user.password = password; 
     user.email = email; 
     user.username = email; 
     user[@"phone_number"] = phoneNumber; 
     user[@"dorm"] = _dormChoice; 
     [user signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) 

Для всего SignUpViewController: https://gist.github.com/vinamratasingal/542dc10bf1674173d2de

Для всей raVerificationViewController: https://gist.github.com/vinamratasingal/758d3a11a3ddf6d7e3a3

ответ

1

Вы не показывая нам ваш файл заголовка для вашего RAVerificationViewController, но я могу почти гарантировать, что проблема в том, что ваши свойства u пойте атрибут свойства weak. Вам нужно убедиться, что они используют атрибут свойства strong.

В противном случае данные не будут иметь никаких сильных ссылок и будут освобождены из памяти.

+0

Недопустимое подчеркивание происходит из-за «@synthesize» в верхней части класса ... он ничего не исправляет (я использовал его для подчеркивания, а затем добавил @synthesize для каждого сломанного свойства и не исправил ничего) –

+0

В большинстве случаев вам больше не нужно использовать @synthesize. Это автоматически позаботится о вас. Отправьте больше кода с обоих контроллеров вашего представления, чтобы мы могли видеть, как у вас есть все настройки. – user3344977

+0

, см. Прикрепленные ссылки на файлы для всех файлов. Я не был уверен, какой код имеет отношение, поэтому я разместил ссылки на оба VC. Здесь они снова: Для всего SignUpViewController: https://gist.github.com/vinamratasingal/542dc10bf1674173d2de Для всей raVerificationViewController: https://gist.github.com/vinamratasingal/758d3a11a3ddf6d7e3a3 Я также установить точки останова и увидел, что переменные класса для этих четырех переменных (имя, адрес электронной почты и т. д.) равны нулю, но общежитие и выбор роли установлены правильно. –

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