Problema programando en XCode

Para dar las gracias debes entrar o registrarte en el foro

iMiembro
iMiembro
Mensajes: 2 Agradecido: 0
05 May 2012, 17:32# 1

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!!

Código: Seleccionar todo
@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

Código: Seleccionar todo
#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
Gracias  
Etiquetado en:
iMiembro
iMiembro
Mensajes: 2 Agradecido: 0
10 May 2012, 18:51# 2
Vale, problema solucionado

Solución en el método siguiente:

Código: Seleccionar todo
- (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.
   
}
Gracias  

Publicidad
Publicidad