Проблема с UITextView - PullRequest
       2

Проблема с UITextView

0 голосов
/ 15 июня 2010

У меня странная проблема с попыткой передать строку из одного контроллера представления в другой контроллер представления, если строка происходит из UITextview вместо UITextfield.UITextview.text и UITextfield.text имеют тип NSString.

Следующий код принимает Textfield.text или Textview.text в зависимости от fieldType и помещает его в строку с именем aString.

NSString *aString = [[NSString alloc] init];
if (fieldType == 3) {
  aString = textView.text;
} else {
  aString = textField.text;
}

Когда я проверяю aString в обоих случаях, я вижу, что он успешно назначил текст в aString.

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

[delegate updateSite:aString :editedFieldKey :fieldType];
[self.navigationController popViewControllerAnimated:YES];

Это работает нормально, если aString возникла из textfield.text, но ничего не происходит, за исключением того, что контроллер представления выталкивается, если aString был из textview.text

Это код, который принимает aString и выполняет с ним все, однакодаже не выполняет первую строку кода "NSLog (@" Возвращаемый объект:% @, тип поля:% @ ", aString, editedFieldKey);"Если aString было из textview.text Любая помощь будет оценена.

-(void)updateSite:(NSString *)aString :(NSString *)editedFieldKey :(int)fieldType  {
 NSLog(@"Returned object: %@, field type:%@", aString,editedFieldKey);

 switch (fieldType) {
  case 0: //string
   [aDiveSite setValue:aString forKey:editedFieldKey] ;
   NSLog(@"String set %@",[aDiveSite valueForKey:editedFieldKey] );
   break;
  case 1: //int
   [aDiveSite setValue:[NSNumber numberWithInt:aString.intValue] forKey:editedFieldKey];
   NSLog(@"Integer set");
   break;
  case 2: //float
   NSLog(@"Saving floating value");
   [aDiveSite setValue:[NSNumber numberWithFloat:aString.floatValue] forKey:editedFieldKey];
   NSLog(@"Float set");
   break;
  case 3: //Text view
   [aDiveSite setValue:aString forKey:editedFieldKey];
   NSLog(@"Textview text saved");  
  default:        
   break;
 }
 [self.tableView reloadData]; 
}

Ответы [ 2 ]

0 голосов
/ 17 июня 2010

Это то, что я изменил для редактирования текстового поля

[self.delegate editingViewController:self didTypeText:aString forKey:editedFieldKey forFieldType:fieldType];

и для просмотра текста, я создал отдельный контроллер, который работает с ним (и он работает)

[self.delegate editTextViewController:self didEditText:textView.text forKey:editedFieldKey];
0 голосов
/ 15 июня 2010

Хм, звучит странно, но я думаю, что ваш синтаксис неправильный:

[delegate updateSite:aString :editedFieldKey :fieldType];

должно быть

[delegate updateSite:aString editedFieldKey:fieldType];

и название метода:

-(void)updateSite:(NSString *)aString :(NSString *)editedFieldKey :(int)fieldType;

должно быть:

-(void)updateSite:(NSString *)aString (NSString *)editedFieldKey :(int)fieldType;

Можешь попробовать?

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