xcode4: как вызвать действие из другого представления? - PullRequest
0 голосов
/ 26 января 2012

допустим, у меня есть mainView, из него я перешел в subView.

я могу отправить значение из subView в mainView с помощью этого кода

mainView *main = [[mainView alloc] initWithNibName:nil bundle:nil];
main.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:main animated:YES];

этот код хорошо отправляет значение текстового поляиз subView в mainView

NSString *text1 = field1.text;

[[mainView label1] setText:[NSString stringWithString:(NSString *)text1]];

что если у меня есть действие action1 в mainView, и я хочу вызвать его, когда вернусь из subView?какой код для этого?

заранее спасибо :))

Ответы [ 2 ]

3 голосов
/ 26 января 2012

В вашем subView (куда вы хотите вызвать) положите

[[NSNotificationCenter defaultCenter] postNotificationName:@"uniqueName" object:anyObjectYouWantToPassToMain];

В вашем mainView (viewDidLoad) поместите

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(yourMethodName:) name:@"uniqueName" object:nil];

Ваш основной вызовет метод yourMethodName, когдаpostNotification выполняется.

0 голосов
/ 26 января 2012

Это общий вопрос.При нажатии другого viewController и желании возвратить информацию в контроллер, который его выдвинул, рекомендуемые способы - объявить протокол делегата для второго контроллера представления и объявить первый контроллер представления для реализации этого делегата.Метод делегата - это метод, который просто передает информацию обратно в первый контроллер представления для обработки.

Если вы хотите увидеть простой пример этого на работе, я недавно написал небольшой пример проекта, который вы можете скачать. Пример делегирования .

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