我一直在寻找这个问题,但还没有得到任何答案。我的问题是:我有一个按钮,点击后会推到另一个视图。
以下是我推动它的方式:
ViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]
instantiateViewControllerWithIdentifier:@"Main_View"];
[self.navigationController pushViewController:vc animated:YES];
ViewController vc是我推送的视图。所以在新视图中,有一个Back按钮可以删除当前视图并返回到旧视图。当我单击按钮时,vc再次从全面加载。
如何让vc的实例保留在内存中,所以当我回到旧视图并再次访问vc时,它不需要再次重新加载? 我想这是与navigationController堆栈相关的东西,但不知道如何做到这一点。 感谢
答案 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建议的操作。