Con una vista web, es posible configurar un simple botón 'Atrás' (ya sea en una barra de navegación o una barra de herramientas superior) que no muestre el botón Atrás en la primera URL de WebView, y solo apareciendo en una segunda URL para volver a la primera? A menos que me esté equivocando, en muchas aplicaciones híbridas nativas/web como News, a menudo ves artículos de noticias en una tabla (página HTML en lugar de una tabla 'programada en xcode') que hipervínculo a las páginas de detalles del artículo (una vez más, HTML en lugar de codificado de forma nativa): lo que no puedo entender es cómo la página de detalles (segunda URL en la vista web) se muestra con un "botón de retroceso" pero la tabla (primera URL en la vista web) no ¿Tiene el botón que se muestra en este tipo de aplicaciones?Navegue por WebView
Actualmente, tengo una vista web como la descrita, con un elemento de barra de 'respaldo' en una barra de herramientas en la parte superior de la pantalla (salida como 'cangoback' para WebView) pero el botón está visible desde el principio cuando no hay página a 'volver' a -
Lo que tengo es simplemente:
Webview - primera URL, tabla HTML - atrás 'muestra de botón, pero no está activo (por supuesto)
Webview: segunda URL, página de detalles de HTML - muestra el botón 'volver', y puede volver atrás.
¿Cómo se consigue que solo aparezca en la 2ª URL o se oculte en la 1ª URL?
Saludos Randy
EDITAR (25 de noviembre)
Aquí está mi h:
#import <UIKit/UIKit.h>
#import "FilmnoirNavController.h"
@interface FilmnoirViewController : UIViewController <UIWebViewDelegate> {
IBOutlet UIWebView *webView;
IBOutlet UIBarButtonItem *backButton;
}
@property (nonatomic, retain) UIWebView *webView;
@property (nonatomic, retain) UIBarButtonItem *backButton;
- (IBAction)backButtonClicked:(id)sender;
@end
y aquí está mi m:
#import "FilmnoirViewController.h"
@implementation FilmnoirViewController
@synthesize webView;
@synthesize backButton;
- (IBAction)backButtonClicked:(id)sender {
[webView goBack];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Initialization code
}
return self;
}
/*
Implement loadView if you want to create a view hierarchy programmatically
- (void)loadView {
}
*/
/*
If you need to do additional setup after loading the view, override viewDidLoad. */
- (void)viewDidLoad {
NSString *urlAddress = @"http://www.filmsite.org/filmnoir.html";
//Create a URL object.
NSURL *url = [NSURL URLWithString:urlAddress];
//URL Requst Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
//Load the request in the UIWebView.
[webView loadRequest:requestObj];
}
- (void)webViewDidFinishLoad {
// Other stuff if necessary...
// Could use hidden instead of enabled if you don't even want
// the button to be visible
backButton.enabled = (webView.canGoBack);
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
// Release anything that's not essential, such as cached data
}
- (void)dealloc {
[webView release];
[super dealloc];
}
@end
Mi diseño del IB:
Filmnoir View Controller (Film noir)
> View
>>Web View
>>Tool Bar
>>>Bar Button Item (Back)
pensé que lo tenía con algo como esto para ocultar la backButton:
- (void)webViewDidFinishLoad {
BOOL ableToGoBack = [webView canGoBack];
if (ableToGoBack == NO) {
[backButton setHidden:YES];
}
else {
[backButton setHidden:NO];
}
pero la advertencia dice un artículo UIbarButton puede no responder a setHidden - y de hecho no lo hace.
Gracias Sbrocket, pero sigo teniendo el mismo problema para conseguir el botón para no figurar en primera URL de vista web. Cuando, como se sugirió, intento usar backButton.hidden, obtengo un error: solicitud de miembro 'oculto', no una estructura o unión. Aprecie cualquier ayuda para que mi botón Atrás aparezca solo cuando la vista web 'cangoback' no aparezca cuando no pueda recuperarse. En la lógica mal codificado Quiero algo como: backButton = hidden web View Si cangoBack = NO Saludos muchachos Randy He editado pregunta inital para incluir mi código. –