以编程方式创建UIWebView

use*_*798 21 cocoa-touch objective-c uiwebview ios

我已经尝试了一段时间,但我没有做对.

我在支持文件中编写了以下init函数:

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

并在ViewController.m中跟随

- (void)viewDidLoad
{
   [super viewDidLoad];

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

我也尝试在appDelegate的didFinishLaunchingWithOptions:方法中创建webview ,但它也没有用.

什么是正确的方法?

Ash*_*iya 35

我希望这个解决方案能帮到你.

只需添加这些行 - (void)viewDidLoad

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
NSString *urlString = @"https://www.google.com";
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
webView loadRequest:request];
[self.view addSubview:webView];
Run Code Online (Sandbox Code Playgroud)

这里我使用了静态框架的Web视图,您可以根据您的要求使用.


das*_*ght 4

看起来您忘记添加webview为其父视图的子视图:

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

也不viewDidLoad是创建子视图的正确位置。您应该将其公开webview为视图的属性,然后从 访问它viewDidLoad,如下所示:

NSString *url=@"http://www.google.com";
NSURL *nsurl=[NSURL URLWithString:url];
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl];
[[self.view webview] loadRequest:nsrequest]; 
Run Code Online (Sandbox Code Playgroud)