在 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;
}
我使用 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;
}