我试图从我的app委托中引用UITabController,即使它不是我的rootViewController。我该怎么做?
UITabBarController *tabBarController =
(UITabBarController *)self.window.rootViewController;
UINavigationController *navigationController =
[[tabBarController viewControllers] objectAtIndex:1];
DocumentsViewController *ViewController =
[[navigationController viewControllers] objectAtIndex:0];
我想更改第一行代码,因此它不会引用" rootViewController"但直接引用我的UITabBarController,因为我有一个我想用于应用程序的开始屏幕。
答案 0 :(得分:0)
在UITabBarController
的.h中声明您的AppDelegate
。
获取对AppDelegate的引用:
AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
然后你可以这样做:
delegate.tabBarController;
或者你可以这样做:
[(AppDelegate*)[UIApplication sharedApplication] delegate] tabBarController];
另外,请确保在rootViewController /
中包含"AppDelegate.h"
修改强>
将其添加到.h
课程的rootViewController
,以便公开访问:
@property SecondViewController *mySecondViewController;
现在,当您以模态方式呈现SecondViewController
之前,请确保以这样的方式执行此操作:
self.secondViewController = [[SecondViewController ...
您现在应该可以从secondViewController
引用AppDelegate
这样的内容:
self.rootViewController.mySecondViewController