Как перезагрузить UIWebView на прессе HomeButton

Я хочу перезагрузить простой UIWebView, который я загрузил, когда приложение открывается и закрывается с домашней кнопки iPad.

Я искал другие вопросы, но, похоже, ни один из них не подходит, поскольку мне не нужна дополнительная кнопка, вкладка или что-то еще в моем приложении.

Я старался:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [webView reload];
}

но это не реагирует. Мой код инициализации находится в контроллере, производном от UIViewController, а UIwebview инициализируется в - (void)viewDidLoad

Любая подсказка, как это сделать?

С уважением

3 ответа

Решение

Как уже отмечали люди, вы, вероятно, хотите applicationWillEnterForeground: Позвоните, но не поддавайтесь искушению добавить ненужные вещи в ваш делегат приложения.

Вместо этого - вы должны зарегистрироваться, чтобы получить это уведомление, когда вы начинаете UIViewController который содержит UIWebView,

- (id)init
{
  self = [super init];
  if (self) {
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(reloadWebView:) 
                                                 name:UIApplicationWillEnterForegroundNotification 
                                               object:nil];
    // Do some more stuff
  }
  return self;
}

Затем реализуйте метод обновления что-то вроде:

- (void)reloadWebView:(NSNotification *)notification
{
  [webView reload];
}

Вам нужно будет отменить регистрацию в вашем контенте, чтобы избежать каких-либо неприятных сюрпризов

- (void)dealloc
{
  [[NSNotificationCenter defaultCenter] removeObserver:self];
  [super dealloc];
}

Попробуйте обновить свой вид в applicationWillEnterForeground:, Это сообщение отправляется представителю вашего приложения, когда приложение возобновляет работу после того, как оно было помещено в фоновый режим с помощью кнопки home.

Вы хотите обновить веб-представление, когда пользователь возобновляет работу приложения после многозадачности? В этом случае вам нужен applicationWillEnterForeground: метод в вашем UIApplicationDelegate,

Общая информация о многозадачности здесь.

Другие вопросы по тегам