KVO на внешнем классе не работает

У меня есть MainViewController с свойством NSString currentTag. Так я и делаю:

[self addObserver:self forKeyPath:@"currentTag" options:NSKeyValueObservingOptionNew context:nil]; 

и это работает нормально, и изменения действительно обрабатываются должным образом. Тем не менее, у меня есть еще один класс SecondViewController, и я также хочу, чтобы он наблюдал текущее значение MainViewController, поэтому в методе viewDidLoad SecondViewController я выполняю:

 [self addObserver:self.mainViewController forKeyPath:@"currentTag" options:NSKeyValueObservingOptionNew context:nil]; 

Однако по какой-то причине этого не удается обработать. Его никогда не называют. Я хочу убедиться, что мой синтаксис и форма верны, прежде чем искать в другом месте моего кода проблему. Этот код выглядит нормально?

Вы делаете это неправильно, вы должны сделать:

 [self.mainViewController addObserver:self forKeyPath:@"currentTag" options:NSKeyValueObservingOptionNew context:nil];