Usare le UIWebView in iPhone e iPad
Apriamo una nuova sezione dedicata al linguaggio nativo per i sistemi Apple: Objective-C.
Nello specifico vedremo come caricare una UIWbeView, componente che ci permette di visualizzare le pagine web su iPhone e iPad.
La guida si riferisce infatti ad entrambi i dispositivi.
Nel vostro progetto aggiungete un componente UIWebView e "collegatelo" a InterfaceBuilder.
Ad esempio questo è il mio FirstViewController.h:
#import <UIKit/UIKit.h>
@interface FirstViewController : UIViewController {
IBOutlet UIWebView *wvCollection;
}
@property (nonatomic, retain) IBOutlet UIWebView *wv_collection;
@end
Adesso nell'implementazione andremo a usare due metodi:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[wvCollection loadRequest:[LoadUrl load:@"http://www.compagniaitaliana.it/beta/app/collection.php"]];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[wvCollection loadRequest:[LoadUrl load:@"http://www.compagniaitaliana.it/beta/app/collection.php"]];
}
Il primo metodo viene caricato solo la prima volta che si accede al controller.
Se poi cambiamo view e ci ritorniamo vediamo che è rimasto come lo avevamo lasciato.
Se vogliamo che si ricarichi ogni volta dobbiamo implementare anche il secondo metodo.
Per caricare la UIWebView dobbiamo passargli un oggetto NSURLRequest ; visto che ho più UIWebView mi è sembrato logico creare una classe apposita.
La classe LoadUrl con il metodo load ha come scopo proprio quello di creare un oggetto NSUrlReuqest da un link che gli viene passato a seconda della view in cui ci troviamo:
#import "LoadUrl.h"
@implementation LoadUrl
+ (NSURLRequest*)load:(NSString *)strUrl {
NSURL *url = [NSURL URLWithString:strUrl];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
return request;
}
@end
Il metodo statico ritorna NSURLRequest e richiede un NSString.
In questo modo non duplichiamo codice e se abbiamo più UIWebView ci basterà dirgli quale indirizzo caricare e richiamare quella classe.
iphone ipad objective-c uiwebview nsurl nsurl
Commentami!