在 iOS 中添加观察者的位置

where to addObserver in iOS

我使用 Objective-C 开发了一个 iOS tabBar 应用程序。当用户打开应用程序时,它位于 tab1 中。当用户点击 tab1 中的图片时,应用会跳转到带有图片名称的 tab3。

问题是在 tab3 中哪里调用 addObserver 因为 tab3 永远不会打开?

如果我没听错你的问题,你只想在点击选项卡 1 中的照片时打开选项卡 3

IMO,它应该有类似 window->mainController->tabController [tabs]

在您的 tab1Controller 中,您可以设置一个委托,让我们调用它 "Tab1ControllerDelegate" 并使用名为 "tab1DidSelectSomething:(NSString *)something" 的方法。然后在您的 mainController 中,您可以将委托分配给自己。

 i.e.
  tab1Controller.delegate = self;

在您的 tab1Controller 选择器操作中,您可以执行以下操作:

if(_delegate){ [_delegate tab1DidSelectSomething:<whatEverheSelected>]; }

然后在你的主控制器中:

-(void)tab1DidSelectSomething:(NSString *)something{ // get the viewController here UIViewController *controller = _tabController.viewControllers[2]; [controller updateselected:something]; _tabController.selectedIndex = 2; }