iOS - Перезагрузить UIView при нажатии значка вкладки? - PullRequest
3 голосов
/ 20 декабря 2010

У меня есть приложение, которое использует UITabBarController, и внутри каждой вкладки у меня есть навигационные контроллеры. Я бы хотел, чтобы одно из представлений перезагрузилось после того, как действие произойдет в другом представлении, так что, когда пользователь возвращается к этому представлению, оно обновляется. Возможно ли это?

Спасибо большое!

Ответы [ 2 ]

8 голосов
/ 20 декабря 2010

Самый простой способ сделать это - поместить код загрузки в viewWillAppear: вместо viewDidLoad. В то время как viewDidLoad может быть вызван только один раз, при инициализации вашего представления, viewWillAppear: вызывается каждый раз, когда ваш контроллер представления собирается быть представленным, будь то панель вкладок, контроллер навигации и т. Д., Что дает Вы хороший крюк для реализации функций загрузки и макета.

0 голосов
/ 19 августа 2013

Спасибо.это сработало отлично.Для тех, кто читает это, вот мой код.Это работает, но имейте в виду, я новичок в iOS и цель-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];
        });
    });
}
...