2016-07-06 9 views
0

Я использую Objective-C для разработки приложения iOS tabBar. Когда пользователи открывают приложение, оно находится в tab1. Когда пользователи нажимают на картинку на вкладке 1, приложение переместится на tab3 с именем изображения.где добавитьObserver в iOS

Проблема заключается в вызове addObserver в tab3, поскольку tab3 никогда не открывается?

+1

Неясно, какой метод вы имеете в виду 'addObserver '(есть по крайней мере две различные группы методов с этим именем) или почему вы хотите это сделать. В общем случае, если диспетчеру просмотра необходимо что-то наблюдать, когда оно отсутствует на экране, вы, вероятно, нарушаете MVC. https://developer.apple.com/library/mac/documentation/General/Conceptual/CocoaEncyclopedia/Model-View-Controller/Model-View-Controller.html Если вам просто нужно наблюдать, когда вы на экране, используйте 'viewDidAppear 'и' viewWillDisappear'. –

ответ

0

Если я получаю свой вопрос правильно, вы просто хотите открыть 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; }