Estás en: Problema programando en XCode
Para dar las gracias debes entrar o registrarte en el foro
Buenas tardes! Para hacerme con el lenguaje estoy programando una aplicación sencilla, un navegador.
Mi problema comienza cuando quiero implementar la función de atrás. Mi idea original es almacenar las direcciones visitadas en un array, y cada vez que se pulse el botón atrás, se saca el último elemento de ese array y se carga, para ello estoy almacenando elementos de la clase NSURLRequest, pero no me funciona bien la aplicación por este tema, solo es el botón de atrás, el resto de cosas si me funciona, pongo el código de la clase problemática. El problema está en el método actualizar. Se me olvidaba comentarlo, las label las estoy utilizando para depuración solamente.
Un saludo y gracias!!
@interface WebViewController : UIViewController
@property (nonatomic, strong) IBOutlet UIWebView *webview;
@property (nonatomic, strong) NSURLRequest *anterior,*request;
@property (nonatomic, strong) IBOutlet UIButton *send,*back;
@property (nonatomic, strong) IBOutlet UITextField *caja;
@property (nonatomic, strong) IBOutlet UILabel *numb,*labaux,*counter;
- (IBAction)actualizar:(id)sender;
@end
#import "WebViewController.h"
@interface WebViewController ()
@end
@implementation WebViewController
@synthesize webview,request,anterior,send,back,caja,labaux,numb,counter;
int contador;
NSMutableArray *direcciones;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (IBAction)actualizar:(id)sender {
if (sender == back && contador > 0) {
contador--;
anterior=[direcciones lastObject];
[direcciones removeLastObject];
[self.webview loadRequest:anterior];
caja.text = [[anterior URL] absoluteString];
}
if (sender == send || sender == caja) {
[direcciones addObject:request];
request = [NSURLRequest requestWithURL:[NSURL URLWithString:self.caja.text]];
[webview loadRequest:request];
contador++;
}
numb.text= [NSString stringWithFormat:@"%d",contador];
labaux.text= [[anterior URL] absoluteString];
counter.text = [NSString stringWithFormat:@"%d", [direcciones count]];
}
- (void)viewDidLoad
{
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.es"]]];
anterior = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.es"]];
caja.text = [[anterior URL] absoluteString];
contador=0;
[direcciones addObject:anterior];
counter.text = [NSString stringWithFormat:@"%d", [direcciones count]];
numb.text= [NSString stringWithFormat:@"%d",contador];
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end
- (void)viewDidLoad
{
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.es"]]];
anterior = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.es"]];
caja.text = [[anterior URL] absoluteString];
contador=0;
//SOLUCION/////////////////////////////////////////////////////////////
direcciones=[[NSMutableArray alloc] initWithObjects:nil];
////////////////////////////////////////////////////////////////////////
[direcciones addObject:anterior];
counter.text = [NSString stringWithFormat:@"%d", [direcciones count]];
numb.text= [NSString stringWithFormat:@"%d",contador];
[super viewDidLoad];
// Do any additional setup after loading the view.
}