我刚刚处理了同样的问题。由于我使用的是故事板,所以我没有实例化我的UIViewControllers
,所以我不能使用“构造函数注入”。我必须使用 setter 注入辞职。
我的应用程序根目录是UITabViewController
. 假设它有两个UINavigationController
s,第一个是 a AControllerView
,第二个是 s BControllerView
。您可以通过AppDelegate.applicationDidFinishLaunchingWithOptions
以下方式检索根控制器:
UITabBarController *tabBarController = (UITabBarController *) self.window.rootViewController;
然后你可以遍历控制器:
NSArray* viewControllers = [tabBarController viewControllers];
for (UIViewController *viewController in viewControllers) {
UINavigationController *navigationController = (UINavigationController*) viewController;
UIViewController *viewController = navigationController.topViewController;
if ([viewController isKindOfClass: [AControllerView class]]) {
AControllerView *a = (AControllerView*) viewController;
// Inject your stuff
}
if ([viewController isKindOfClass: [BControllerView class]]) {
BControllerView *b = (BControllerView*) viewController;
// Inject your stuff
}
}
希望能帮助到你。