我有一个带有数据表的UIViewController
以及一个用注释加载数据的地图。
我希望数据仅在用户第一次访问视图时加载,然后只有在通过更新按钮调用方法时才重新加载。目前,视图会重新加载每次访问的数据。我正在调用requestData
UITableView
和load map
方法中的viewDidLoad
方法。
我正在使用以下代码将用户发送到视图。也许每次都强制viewDidLoad方法:
-(IBAction)pushHomeButton{
// front view controller
[self.homeBtn setTitleColor:customColorGrey forState:UIControlStateHighlighted];
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.0001 * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
FrontViewController *myNewUIViewController = [[FrontViewController alloc] init];
UINavigationController *myNavController = [[UINavigationController alloc] initWithRootViewController:myNewUIViewController];
[self.revealController setFrontViewController:myNavController];
// Putting back the front view on focus
[self.revealController showViewController:self.revealController.frontViewController];
});
}
感谢您的帮助。
答案 0 :(得分:2)
因此,您可以在viewDidLoad
中加载数据,然后在NSUserDefaults
中创建变量
您在应用加载时设置此项:
[[NSUserDefaults standardUserDefaults] setObject:@"YES" forKey:@"FirstTime"];
然后当你在Controller的viewDidLoad中时
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"FirstTime"]) {
[[NSUserDefaults standardUserDefaults] setObject:@"NO" forKey:@"FirstTime"];
//Code for load data
}
答案 1 :(得分:1)
根据我的理解,您似乎将数据存储到View Controller实例中(您说您正在使用viewDidLoad
方法加载它)。
您似乎想要的是加载后要缓存的数据。您可以通过多种方式执行此操作,其中最简单的方法是将其存储在全局上下文中,例如AppDelegate实例;在视图控制器中的viewDidLoad
方法内,您将测试数据是否已存在且未过期,在这种情况下,您将跳过资源加载并使用它。否则,您将加载数据并将其存储在该AppDelegate属性中。