如何使当前的ViewController无法释放?

时间:2014-03-24 03:50:33

标签: ios uiviewcontroller

有办法吗?我有MapViewCOntroller,我不想每次都启动它。

2 个答案:

答案 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

来获得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];
}