2012-09-25 19 views
20

He estado intentando esto por un tiempo, pero no lo estoy haciendo bien.Crear UIWebView programáticamente

he escrito la siguiente función init en un archivo de apoyo:

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
    webview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 1024,768)]; 
} 
    return self; 
} 

y siguiendo en ViewController.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UIWebView *view = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)]; 
    NSString *[email protected]"http://www.google.com"; 
    NSURL *nsurl=[NSURL URLWithString:url]; 
    NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl]; 
    [view loadRequest:nsrequest]; 
} 

También probé la creación de la vista web en didFinishLaunchingWithOptions: método de AppDelegate, pero tampoco funcionó.

¿Cuál es la forma correcta?

Respuesta

4

Parece que ha olvidado añadir webview como una vista secundaria de la vista padre:

-(id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     webview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 1024,768)]; 
     [self addSubview:webview]; 
    } 
    return self; 
} 

también viewDidLoad no es el lugar correcto para crear subvistas. Usted debe exponer webview como una propiedad de la vista, y luego acceder a ella desde viewDidLoad, así:

NSString *[email protected]"http://www.google.com"; 
NSURL *nsurl=[NSURL URLWithString:url]; 
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl]; 
[[self.view webview] loadRequest:nsrequest]; 
+0

gracias por su respuesta, pero Im consiguiendo error en self.view – user1153798

+0

@ user1153798 si el código está en 'UIViewController',' self.view' deben estar multa. El '.view' puede estar equivocado; intente' [self.view webview] 'en su lugar (vea la edición). – dasblinkenlight

31

espero que esta solución le ayudará.

sólo tiene que añadir estas líneas en - (void)viewDidLoad

UIWebView *webview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 1024,768)]; 
    NSString *[email protected]"http://www.google.com"; 
    NSURL *nsurl=[NSURL URLWithString:url]; 
    NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl]; 
    [webview loadRequest:nsrequest]; 
    [self.view addSubview:webview]; 

Aquí he utilizado el marco de vista estático web, puede usar de acuerdo a sus necesidades.

+0

Utilicé el marco estático de la vista web, puede usar según sus requisitos. – iBapu

0
UIWebView *webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 568)]; 
webView.delegate = self; 
NSString *[email protected]"http://www.google.com"; 
NSURL *nsurl=[NSURL URLWithString:url]; 
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl]; 
[webview loadRequest:nsrequest]; 
[self.view addSubview:webview]; 

Declarar UIWebviewDelegate en la interfaz de la viewcontroller

Cuestiones relacionadas