Если использовать табличное представление - то в настройках Storyboard даже есть специальный чекбокс, который включает обновление представления при свайпе вниз. У обычного UIViewController такой опции нет. Но её легко добавить программно:
В методе 
viewDidLoad пропишите:
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];//инициализация
refreshControl.backgroundColor = [UIColor purpleColor];//добавим фиолетовый фон
refreshControl.tintColor = [UIColor whiteColor];//установим белый шрифт
[refreshControl addTarget:self action:@selector(reloadData:) forControlEvents:UIControlEventValueChanged];//вешаем обработчик reloadData
//тут у меня есть scrollView, который является самым верхним view. У вас он может называться по-другому
[scrollView addSubview:refreshControl];
[self.view addSubview:scrollView];
Теперь создадим обработчик:
- (void)reloadData:(UIRefreshControl *)refreshControl{
    NSLog(@"reloading...");
    //тут обновляйте ваши переменные, которые будут использоваться для наполнения представления(текст, фото и т.д.)
    if (refreshControl) {
      //делаем красивое пояснение
      NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
      [formatter setDateFormat:@"d.MM в HH:mm"];//формат даты
      NSString 
*title 
= [NSString stringWithFormat
:@"Обновлено: %@", [formatter stringFromDate
:[NSDate 
date]]];      NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObject:[UIColor whiteColor]
                                                                forKey:NSForegroundColorAttributeName];
      NSAttributedString *attributedTitle = [[NSAttributedString alloc] initWithString:title attributes:attrsDictionary];
          refreshControl.attributedTitle = attributedTitle;
          [refreshControl endRefreshing];
    }
    //тут всё обновляем
    [self viewDidLayoutSubviews];
    [self viewDidLoad];
    NSLog(@"reloading done");
}
Всё готово.