Передача текстового значения из одного представления в другое - PullRequest
0 голосов
/ 14 октября 2010

У меня есть это в моем контроллере табличного представления, и я хочу передать текстовое значение ячейки моему UITextField в модальном представлении.

- (void)buttonTapped:(id)sender {
    AddName *addName = [[AddName alloc] init];
    UITableViewCell *cell = (UITableViewCell*)[sender superview];
    NSLog(@"text in buttontapped: %@", cell.textLabel.text);
    addName.nameField.text = cell.textLabel.text;
    addName.delegate = self;
    [self presentModalViewController:addName animated:YES];
}

NSLog показывает правильное текстовое значение ячейки.

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

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"text: %@",nameField.text);
    nameField.autocapitalizationType = UITextAutocapitalizationTypeWords;
    nameField.autocorrectionType = UITextAutocorrectionTypeDefault;
    [nameField becomeFirstResponder];
}

Что происходит?

Спасибо.

1 Ответ

1 голос
/ 14 октября 2010

Похоже, вы предполагаете, что контроллер модального представления уже загрузил свое представление, поскольку я предполагаю, что nameField является подпредставлением. Но ясно, что в тот момент, когда ваш код пытается установить его свойство text, текстовое поле и его родительское представление еще не загружены, поэтому вы отправляете сообщение -setText: на nil.

Вместо этого добавьте свойство в свой контроллер модального представления типа NSString * и установите его в своей реализации buttonTapped. Затем в методе -viewWillAppear контроллера модального представления вы можете взять значение из свойства и поместить его в текстовое поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...