Créer UIWebView par programmation
J'ai essayé pendant un moment, mais je ne suis pas de bonne.
J'ai écrit cette fonction init dans un second fichier:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
webview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 1024,768)];
}
return self;
}
et à la suite dans 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];
}
J'ai aussi essayé de créer la webview dans didFinishLaunchingWithOptions:
méthode de appDelegate, mais il n'a pas de travail.
Quelle est la bonne façon?
Vous devez vous connecter pour publier un commentaire.
J'espère que cette solution vous aidera.
- (void)viewDidLoad
UIWebView
est obsolète: la première obsolète dans iOS 12.0 - N'est plus pris en charge; s'il vous plaît prendreWKWebView
, sorte de code mis à jour pour Objective-C et Swift sont en dessous deSwift:
Objectif C:
Il semble que vous avez oublié d'ajouter
webview
comme une sous-vue de la vue parente:Aussi
viewDidLoad
n'est pas le bon endroit pour créer des sous-vues. Vous devriez exposerwebview
comme une propriété de votre point de vue, et y accéder à partir deviewDidLoad
, comme ceci:UIViewController
,self.view
doit être fine. Le.view
trompe peut-être - essayez[self.view webview]
à la place (voir le modifier).Déclarer UIWebviewDelegate dans l'interface de la viewcontroller
Cette réponse est une légère amélioration par rapport à @Ashvin Ajadiya de réponse. Pour définir dynamiquement la largeur et la hauteur de la vue web en fonction de votre appareil
utilisez ce code à l'intérieur de viewWillAppear sinon il ne sera pas bon appareil de largeur et de hauteur