Вам нужно сделать три вещи
- Подтвердить делегатов веб-просмотра
- Реализовать делегата веб-просмотра методами webviewDidFinishLoad
- Создать методы для действия кнопки
Сначала подтвердите, что загруженный делегат веб-просмотра действительно загрузил
webview.delegate=self //(don't forgot to add the webview protocol <UIWebviewDelegate>)
Второй делегат веб-просмотра внедряют
-(void)webViewDidFinishLoad:(UIWebView *)webView{
if (webView.canGoBack) {
UIBarButtonItem *backButton=[[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:self action:@selector(backButtonPressed)];
self.navigationItem.rightBarButtonItem=backButton;
}else{
self.navigationItem.rightBarButtonItem=nil;
}
}
Третий метод добавления backButtonPressed
-(void)backButtonPressed{
//update the method according to your need
if (webview.canGoBack) {
[webview goBack]
}else{
[self.navigationController popViewControllerAnimated:true];
}
}
Редактировать
Если вы хотите, чтобы кнопка отображалась только в формате PDF, то при выполнении запроса, аналогичного тому, который вы выполняете, загрузилось создание глобального BOOL isPdf и установите его при загрузке запроса, например
NSURL *myURL = [NSURL URLWithString:@"http://test.mysite.com"];
isPdf=[myURL.lastPathComponent isEqualToString:@".pdf"];
, а затем в вашем методе делегата веб-просмотра: -
-(void)webViewDidFinishLoad:(UIWebView *)webView{
if (isPdf) {
UIBarButtonItem *backButton=[[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:self action:@selector(backButtonPressed)];
self.navigationItem.rightBarButtonItem=backButton;
}else{
self.navigationItem.rightBarButtonItem=nil;
}
}