有办法吗?我有MapViewCOntroller,我不想每次都启动它。
答案 0 :(得分:0)
在你的AppDelegate.h中声明一个这样的属性:
@property (strong, nonatomic) YourViewController *vc;
在AppDelegate.m文件中didFinishLaunchingWithOptions
self.vc = [[YourViewController alloc] initWithNibName:@"YourViewController" bundle:nil];
在任何ViewController之后,你可以这样做:
AppDelegate *appDelegate = (AppDelegate *) [[UIApplication sharedApplication] delegate];
你可以写下这个:appDelegate.vc
希望这会有所帮助.. :)
答案 1 :(得分:0)
最佳解决方案是,在AppDelegate类中添加字典。使用键作为控制器名称将所有控制器添加到该字典。添加辅助方法,它将根据传递的键返回viewController。通过这种方式,您可以在一个字典中跟踪所有视图控制器。
在AppDelegate中添加这样的字典:
@property(nonatomic,strong) NSMutableDictionary *viewControllers;
添加如下的辅助方法:
- (void)setViewController:(UIViewController *)viewController forKey:(NSString *)vcKey
{
if( !self.viewControllers )
{
self.viewControllers = [[NSMutableDictionary alloc] init];
}
[self.viewControllers setObject:viewController forKey:vcKey];
}
- (UIViewController *)viewControllerWithKey:(NSString *)vcKey
{
return [self.viewControllers objectForKey:vcKey];
}