Если вы просто хотите иметь обработчик действий:
- (void)viewDidLoad {
[super viewDidLoad];
// ......
UIButton *myButton = [[UIButton alloc] init]; // or initWithSOMETHING
[myButton addTarget:self action:@selector(someMethod:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:myButton];
[myButton release];
// ......
}
- (void)someMethod:(id)sender {
if (![sender isKindOfClass:[UIButton class]]) return;
// Do something about the action here...
}
Для получения дополнительной информации см. Документацию UIControl
:
Подготовка и отправка сообщений о действиях
– sendAction:to:forEvent:
– sendActionsForControlEvents:
– addTarget:action:forControlEvents:
– removeTarget:action:forControlEvents:
– actionsForTarget:forControlEvent:
– allTargets
– allControlEvents
Или, если вы говорите о контроллере представления, вызывающем родительский контроллер представления, вы можете использовать свойство presentingViewController
UIViewController
для доступа к «родительскому» контроллеру представления:
UIViewController *parentVC = [self presentingViewController];
[parentVC setSomething:self.withSomething];
presentingViewController
- Контроллер представления, который представил этот контроллер представления. (Только для чтения)
@property(nonatomic, readonly) UIViewController
*presentingViewController
Обсуждение
Реализация этого свойства по умолчанию идет вверх по представлению
иерархия, начиная с этого представления контроллера. Первый вид
Контроллер находит, что получил
presentViewController:animated:completion:
метод, или у которого есть свой
definesPresentationContext
свойство, установленное на YES
, возвращается как
стоимость имущества. Он продолжает идти вверх по иерархии, пока не
находит значение для возврата или оно попадает в корневой контроллер представления.
Или superview
свойство UIView
:
[self.view.superview doSomething];
superview
- супервизор получателя или ноль, если его нет. (Только для чтения)
@property(nonatomic, readonly) UIView *superview