作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
似乎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/
我是一名优秀的程序员,十分优秀!