Как перезагрузить 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
,
Общая информация о многозадачности здесь.