#iphone #uiviewcontroller #uipopovercontroller
#iPhone #uiviewcontroller #uipopovercontroller
Вопрос:
я думаю, что название объясняет само себя. У меня есть UIPopoverController, в нем есть tableview, и когда я выбираю ячейку, я хочу сообщить ей UIViewController.
Есть ли простое решение или мне нужны KeyValueObserving или уведомления?
Ответ №1:
Отправьте NSNotification из tableview и добавьте UIViewController в качестве наблюдателя.
Комментарии:
1. Думаю, это самый простой метод.
Ответ №2:
вы могли бы использовать один из двух подходов по вашему выбору.
сначала: используя делегат / протокол. http://www.thepensiveprogrammer.com/2010/05/objective-c-protocols-and-delegates.html
второе: установите ваш UIViewController в качестве целевого для вашего UIButton.
например
[btn addTarget:myController action:@selector(ActionWillBePerformedInController:) forControlEvents:UIControlEventTouchUpInside];
Ответ №3:
Публикация NSNotification будет работать хорошо… вы также можете создать объект обратного вызова и селектор в своем классе UITableViewController.
вы могли бы инициализировать свой UITableViewController с помощью объекта обратного вызова и селектора обратного вызова
initWithTarget:(id)theTarget andSelector:(SEL) theSelector
… сохраните значения в свойствах
затем из didSelectRowAtIndexPath в вашем TableView … вызовите
[self.target performSelector:self.selector];
используя эту методологию, вы можете определить свои собственные методы обратного вызова по своему усмотрению .. из вашего класса ViewController, который создал всплывающее окно, вы могли бы сделать что-то вроде этого…
[[MyTableView alloc] initWithTarget:(self) andSelector:@selector(popoverControllerDidRequestClose)];