加载以前在iOS中加载的视图

时间:2015-06-06 00:21:07

标签: ios objective-c uiviewcontroller uinavigationcontroller viewcontroller

我一直在寻找这个问题,但还没有得到任何答案。我的问题是:我有一个按钮,点击后会推到另一个视图。

以下是我推动它的方式:

ViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]
                      instantiateViewControllerWithIdentifier:@"Main_View"];
[self.navigationController pushViewController:vc animated:YES];

ViewController vc是我推送的视图。所以在新视图中,有一个Back按钮可以删除当前视图并返回到旧视图。当我单击按钮时,vc再次从全面加载。

如何让vc的实例保留在内存中,所以当我回到旧视图并再次访问vc时,它不需要再次重新加载? 我想这是与navigationController堆栈相关的东西,但不知道如何做到这一点。 感谢

2 个答案:

答案 0 :(得分:0)

将ViewController实例保留为第一个ViewController

中的属性
@property (strong,nonatomic)ViewController * vc;

然后当推它时,检查它是否在内存中

 if (self.vc == nil) {
    self.vc = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]
                                 instantiateViewControllerWithIdentifier:@"Main_View"];
}
[self.navigationController pushViewController:self.vc animated:YES];

答案 1 :(得分:0)

您使用的是UINavigationController吗?如果是这样,可以在后面的按钮'IBAction'中调用以下代码行:

save_as: chapter1/index.html

如果您确实需要保留视图控制器的实例,请执行Leo建议的操作。