Чтобы заставить код работать при установленном свойстве (я полагаю, вы это имели в виду?), Вы можете просто переопределить метод синтезированного сеттера
@synthesize value = _value;
- (void)setMyProperty:(id <MyProtocol>)value {
if (value != value) {
_value = value;
// Insert your code here
...
}
}
Если вы хотите, чтобы все ваши контроллеры представления вели себя одинаковоТаким образом, вы можете предоставить общий подкласс UIViewController, т.е.
@interface AbstractViewController : UIViewController {
...
}
, а затем все ваши «настоящие» контроллеры представления будут наследоваться от этого, а не напрямую от UIViewController:
@interface MainViewController : AbstractViewController { ... }
@interface DetailsViewController : AbstractViewController { ... }
Есливы добавили свое свойство (и ваш переопределенный метод установки) в контроллер абстрактного представления, тогда все ваши реальные контроллеры представления получили бы эту функциональность бесплатно.
Надеюсь, это полезно.Если это не так, добавьте больше информации в свой вопрос, и мы можем попробовать еще раз:)