2

有人可以告诉我如何获取它之前创建的 UIView 控制器吗?我正在使用情节提要,并且我已经阅读了有关方法 instantiateViewControllerWithIdentifier 的苹果文档:但是这个文档说每次我调用这个方法时它都会创建一个新的 ViewController 实例我想要的是使用现有的。

我在故事板上寻找 UIViewController 单例。是否可以?

提前致谢!!

4

2 回答 2

2

如果您只调用instantiateViewControllerWithIdentifier:一次,然后将结果保存为某个强属性以供重复使用,那么您将只创建一次。

于 2012-08-16T17:53:36.157 回答
0

我有这样的解决方案:

  1. 控制器A:

'    SingleController * B = [SingleController shareSingleController];
[self.navigationController pushViewController:con animated:YES];'

//push ControllerB 
  1. 控制器B:

+(instancetype)shareSingleController
{
    static SingleController * single;

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{    
        //a static instance from StoryBoard

        single = (SingleController *)[[UIStoryboard storyboardWithName:@"SingleController" bundle:nil]instantiateInitialViewController];
    });
    return single;'
}

您可以测试,它是一个单一的实例。

于 2015-02-05T03:40:58.587 回答