我有一个使用UITabBarController的应用程序,在每个选项卡中我都有导航控制器。 我希望在另一个视图中发生操作后重新加载其中一个视图,以便当用户返回到该视图时 - 它会更新。 有可能吗?
非常感谢!
答案 0 :(得分:8)
实现此目的的最简单方法是将加载代码放入viewWillAppear:而不是viewDidLoad
。虽然viewDidLoad
可能只被调用一次,但是当您的视图初始化时,只要您的视图控制器即将出现,就会调用viewWillAppear:
,无论是在标签栏,导航控制器等中。,它为您提供了一个很好的钩子来实现加载和布局功能。
答案 1 :(得分:0)
感谢。这很完美。对于读这里的人来说,这是我的代码。它可以工作,但要注意,我是iOS和Objective-C的新手,因此需要注意。
- (void)viewWillAppear:(BOOL) animated
{
NSURL *imageURL = [NSURL URLWithString:@"http://www.domain.com/image.jpg"];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
dispatch_async(dispatch_get_main_queue(), ^{
// Update the UI
self.img.image = [UIImage imageWithData:imageData];
});
});
}