Как отправить содержимое текстовых полей в представление B для просмотра A? - PullRequest
2 голосов
/ 16 января 2012

Я создал tableview A в UIView A, с tabledatasource из файла plist, определенного в файле A.m. Записи в tableview являются словарями с keyA, keyB, keyC и т. Д.

Теперь я собираюсь создать UIButton в UIView A и новый модальный вид B. Когда нажата кнопка, появится модальный вид B. В modalview B пользователи будут заполнять несколько UITextfields. Информация, которую пользователь заполняет в текстовых полях, запишет в файл plist (как упомянуто выше), а затем перезагрузит содержимое табличного представления A.

Мой вопрос заключается в том, что пользователи заполняют информацию в modalview B. Но табличное представление A находится в UIView A. Кажется, что я не могу изменить содержимое табличного представления A, когда я в настоящее время использую приложение в modalview B ?

Если есть способ передать информацию, введенную в представлении B, для просмотра A? Большое спасибо.

Ответы [ 3 ]

4 голосов
/ 16 января 2012

Использовать пользовательские протоколы - это называется шаблоном делегата

// ClassA.h

@interface : ClassA{
}
@end

ClassB.h

@protocol ClassBDelegate;

@interface :  ClassB{

    id <ClassBDelegate> delegate
}

@property(nonatomic,assign)   id <ClassBDelegate> delegate;
@end
@protocol ClassBDelegate <NSObject>

-(void)classB:(ClassB*)bclass param1:(NSString*)p1 param2:(NSString*)p2 param3:(NSString*)p3;

@end

Установить делегата для ClassA - получатель

В действии кнопки (в классе b) просто скажи

[self.delegate classB:self param1:@"Param1" param2:@"P2" param3:@"p3"];
1 голос
/ 16 января 2012

Такое поведение обычно достигается с помощью шаблона делегата. Посмотрите пример iPhoneCoreDataRecipes в документации Apple. В частности посмотрите на классы

  • RecipeListTableViewController, где ваше табличное представление A будет
  • RecipeAddViewController, модальное представление B, где вы получаете информацию
0 голосов
/ 16 января 2012

Мне кажется, я неправильно понял ваш вопрос. Хорошо, так как Санджив сказал, что вы можете использовать делегатов. Или вы можете использовать NSNotification. Добавьте наблюдателя уведомлений в представлении A и представлении B, где вы изменяете plist. Опубликуйте уведомление. См. Этот пример

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