gpt4 book ai didi

ios - Xcode 5 在带有 WebView 的新 View Controller 中加载 URL

转载 作者:可可西里 更新时间:2023-11-01 06:24:49 24 4
gpt4 key购买 nike

似乎Xcode早期版本中的所有方法都不适合我。

我现在拥有的:
我有一个带有按钮的主菜单,该按钮使用带有 WebView 的不同 Controller 进入另一个 View (具有属性,因此可以设置要加载的 URL)

我想要的:当我从该按钮加载该 View 时,我想将一个字符串从第一个 View 传递到表示 URL 的新 View 并将其加载到 Web View 中。基本上我想要一个通用的 WebView View ,它可以加载由 segue 到它的 View 传递的不同 URL。

这是 WebView H 文件的代码

#import <UIKit/UIKit.h>

@interface BRWebView : UIViewController
{
IBOutlet UIWebView *requestWebView;

}
@property (strong, nonatomic) NSString *loadUrl;

@end

在 MainMenu 的 ViewController 中有一个按钮监听器

-(IBAction)requestButton:(id)sender
{
BRWebView *web = [self.storyboard instantiateViewControllerWithIdentifier:@"BRWebView"];
web.loadUrl = @"Websitename.com";
[self presentModalViewController:web animated:YES];

}

在 BRWebView.m 文件中有这个

- (void)viewDidLoad
{

[super viewDidLoad];

NSURL *url = [NSURL URLWithString:_loadUrl];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[requestWebView loadRequest:request];
}

最佳答案

在问题代码后编辑:

ViewController 中将您的代码替换为:

- (IBAction)requestButton:(id)sender
{
BRWebView *web = [self.storyboard instantiateViewControllerWithIdentifier:@"BRWebView"];
web.loadUrl = @"http://websitename.com";
[self presentViewController:web animated:YES completion:nil];
}

并在 BRWebView.m 中删除 viewDidLoad 中的代码并添加 viewWillAppear :

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];

// URL Request Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:[NSURL URLWithString:_loadUrl]];

// Load the request in the UIWebView
[_requestWebView loadRequest:requestObj];
}

旧答案:

您需要使用这样的属性传递您的 URL 数据(没有导航 Controller ):

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showDetail"])
{
// Get reference to the destination view controller
ViewControllerB *viewControllerB = segue.destinationViewController;

// Pass URL
viewControllerB.webviewURL = @"http://myurl.com";
}
}

带导航 Controller :

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showDetail"])
{
UINavigationController *navController = (UINavigationController *)segue.destinationViewController;
ViewControllerB *viewControllerB = (ViewControllerB *)navController.topViewController;

// Pass URL
viewControllerB.webviewURL = @"http://myurl.com";
}
}

在您的第二个 View .h 上:

@property (nonatomic, strong) NSString *webviewURL;

第二个 View .m:

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];

// URL Request Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:[NSURL URLWithString:_webviewURL]];

// Load the request in the UIWebView
[self.webView loadRequest:requestObj];
}

关于ios - Xcode 5 在带有 WebView 的新 View Controller 中加载 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19277391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com