Если я получаю свой вопрос правильно, вы просто хотите открыть TAB3 при нажатии на фото из вкладки 1
ИМО, он должен иметь что-то вроде window-> mainController-> tabController [вкладки]
В ваш tab1Controller, который вы можете настроить делегата, может вызвать его «Tab1ControllerDelegate», имея метод с именем «tab1DidSelectSomething: (NSString *)». то в вашем mainController вы можете назначить делегата себе.
i.e.
tab1Controller.delegate = self;
В вашем tab1Controller действия захватывающего вы можете сделать что-то вроде:
if(_delegate){ [_delegate tab1DidSelectSomething:<whatEverheSelected>]; }
Тогда в вашем mainController:
-(void)tab1DidSelectSomething:(NSString *)something{ // get the viewController here UIViewController *controller = _tabController.viewControllers[2]; [controller updateselected:something]; _tabController.selectedIndex = 2; }
Неясно, какой метод вы имеете в виду 'addObserver '(есть по крайней мере две различные группы методов с этим именем) или почему вы хотите это сделать. В общем случае, если диспетчеру просмотра необходимо что-то наблюдать, когда оно отсутствует на экране, вы, вероятно, нарушаете MVC. https://developer.apple.com/library/mac/documentation/General/Conceptual/CocoaEncyclopedia/Model-View-Controller/Model-View-Controller.html Если вам просто нужно наблюдать, когда вы на экране, используйте 'viewDidAppear 'и' viewWillDisappear'. –