2012-09-25 19 views
20

Próbowałem tego przez chwilę, ale nie rozumiem.Twórz program UIWebView programowo

Pisałem następującą funkcję startowy w pliku drugoplanowy:

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

i podążając 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]; 
} 

Próbowałem też tworzeniu webview w didFinishLaunchingWithOptions: metody appDelegate, ale też nie działa.

Jaki jest prawidłowy sposób?

Odpowiedz

4

Wygląda na to, że zapomniał dodać webview jako podrzędny jego widzenia dominującej:

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

także viewDidLoad nie jest właściwym miejscem do tworzenia subviews. należy wystawiać webview jako własność widoku, a następnie do niego dostęp z viewDidLoad, tak:

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

dzięki za odpowiedź, ale im uzyskiwanie błąd na self.view – user1153798

+0

@ user1153798 jeśli kod jest w 'UIViewController',' self.view' powinny być w porządku. Obraz ".view" może być niepoprawny - zamiast tego spróbuj '[self.view webview] (zobacz edycję). – dasblinkenlight

31

Mam nadzieję, że to rozwiązanie pomoże.

Wystarczy dodać te linie w - (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]; 

Tutaj użyłem statyczną ramkę widoku strony internetowej, można użyć w zależności od zapotrzebowania.

+0

Użyłem statycznej ramki widoku strony, możesz użyć zgodnie z wymaganiami. – 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]; 

stwierdzenie UIWebviewDelegate w interfejsie viewcontroller

Powiązane problemy