Ali*_*ioo 3 xcode objective-c webview ios xcode5
似乎早期版本的Xcode中的所有方法都不适用于我.
我现在
拥有的:我有一个带有按钮的主菜单,该按钮可以使用带有WebView的不同控制器进入另一个视图(具有属性,因此可以设置要加载的URL)
我想要的:当我从该按钮加载该视图时,我想将第一个视图中的字符串传递给代表URL的新视图,并将其加载到Web视图中.基本上我想要一个通用的WebView视图,它可以加载由视图传递给它的不同URL.
这是WebView H文件的代码
#import <UIKit/UIKit.h>
@interface BRWebView : UIViewController
{
IBOutlet UIWebView *requestWebView;
}
@property (strong, nonatomic) NSString *loadUrl;
@end
Run Code Online (Sandbox Code Playgroud)
在MainMenu的ViewController中,按钮监听器有这个
-(IBAction)requestButton:(id)sender
{
BRWebView *web = [self.storyboard instantiateViewControllerWithIdentifier:@"BRWebView"];
web.loadUrl = @"Websitename.com";
[self presentModalViewController:web animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
在BRWebView.m文件中有这个
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:_loadUrl];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[requestWebView loadRequest:request];
}
Run Code Online (Sandbox Code Playgroud)
在问题中的代码后编辑:
在ViewController替换您的代码:
- (IBAction)requestButton:(id)sender
{
BRWebView *web = [self.storyboard instantiateViewControllerWithIdentifier:@"BRWebView"];
web.loadUrl = @"http://websitename.com";
[self presentViewController:web animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
并在viewDidLoad中BRWebView.m删除您的代码并添加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];
}
Run Code Online (Sandbox Code Playgroud)
老答案:
您需要使用这样的属性传递您的URL数据(没有导航控制器):
- (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";
}
}
Run Code Online (Sandbox Code Playgroud)
带导航控制器:
- (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";
}
}
Run Code Online (Sandbox Code Playgroud)
在你的第二个观点.h:
@property (nonatomic, strong) NSString *webviewURL;
Run Code Online (Sandbox Code Playgroud)
第二种观点.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];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15708 次 |
| 最近记录: |