2016-07-06 63 views
0

我使用Objective-C开发iOS tabBar应用程序。当用户打开应用程序时,它在tab1中。当用户点击tab1中的图片时,该应用程序将跳转到带有图片名称的tab3。iOS中添加观察器的位置

问题是在tab3中调用addObserver的地方,因为tab3从不打开?

+1

你用'的addObserver意味着什么方法目前还不清楚'(至少有两组不同的方法和这个名称)或为什么你想这样做。一般来说,如果视图控制器在屏幕上不需要观察时,你可能违反了MVC。 https://developer.apple.com/library/mac/documentation/General/Conceptual/CocoaEncyclopedia/Model-View-Controller/Model-View-Controller.html如果你只是需要观察你在屏幕上,使用'viewDidAppear '和'viewWillDisappear'。 –

回答

0

如果我正确地得到你的问题,你只想当您单击从选项卡中的照片1

IMO打开TAB3,它应该有类似窗口 - > mainController-> tabController [标签]

在您可以设置委托的tab1Controller让我们称之为“Tab1ControllerDelegate”,它有一个名为“tab1DidSelectSomething:(NSString *)something”的方法。那么在你的mainController中,你可以把委托赋给self。

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; }