我希望传递url到详细视图控制器以在webview中显示,但它在targetController.url = url上提供了多余的错误;
如果我这样做,那么它将完美地进入下一个视图但不是第一次给出
NSString*url=@"www.google.com";
PortfolioDetailViewController *targetViewController=[[PortfolioDetailViewController alloc] initWithNibName:@"PortfolioDetailViewController" bundle:[NSBundle mainBundle]];
targetViewController.stringURLToLoad =url;
[self.navigationController pushViewController:targetViewController animated:YES];
[targetViewController release];
错误日志
2012-01-05 10:25:21.459 MotherAndChildGuide[656:207] http://www.stbcouncil.com
Current language: auto; currently objective-c
Program received signal: “EXC_BAD_ACCESS”.
(gdb)
答案 0 :(得分:0)
在实际课程中
- (IBAction)tappedItemAtIndexButton:(id)sender
{
NSString *url =[NSString stringWithFormat:@"%@",@"www.google.com"];
PortfolioDetailViewController *targetViewController=[[PortfolioDetailViewController alloc] initWithNibName:@"PortfolioDetailViewController" bundle:[NSBundle mainBundle]];
targetViewController.url=url;
[self.navigationController pushViewController:targetViewController animated:YES];
[targetViewController release];
}
在Target类中,您需要使用 .H
NSString *url;
@property(nonatomic,retain)NSString *url;
.m
@synthesize url;
并在该类的任何位置使用该字符串
并使用
NSURLRequest* request = [NSURLRequest requestWithURL: [NSURL URLWithString:self.url]];
[webView loadRequest:request];
在webview中加载
答案 1 :(得分:0)
正如您所提到的,您希望将var(URL)传递给下一个视图控制器并在Web视图中加载某些内容。您可以声明一个Var来保存 PortfolioDetailViewController 中的传入值,例如
NSString* strURLToLoad;
或NSURL * urlToLoad;
并通过 属性 公开它们。在这两种情况下,您需要从之前的viewcontroller传递正确的值
- (IBAction)tappedItemAtIndexButton:(id)sender {
NSString*url =url1;
PortfolioDetailViewController *targetViewController=[[PortfolioDetailViewController alloc] initWithNibName:@"PortfolioDetailViewController" bundle:[NSBundle mainBundle]];
targetViewController.strURLToLoad = url;
[self.navigationController pushViewController:targetViewController animated:YES];
[targetViewController release];
}
或
- (IBAction)tappedItemAtIndexButton:(id)sender {
NSURL* urlToSend = [NSURL urlWithString:url1];
PortfolioDetailViewController *targetViewController=[[PortfolioDetailViewController alloc] initWithNibName:@"PortfolioDetailViewController" bundle:[NSBundle mainBundle]];
targetViewController.urlToLoad = urlToSend;
[self.navigationController pushViewController:targetViewController animated:YES];
[targetViewController release];
}
取决于您在 PortfolioDetailViewController中声明的变量类型
如果您从之前的视图控制器传递字符串,则需要将其用作
之类的字符串NSURLRequest* request = [NSURLRequest requestWithURL: [NSURL URLWithString:self.strURLToLoad]];
[webView loadRequest:request];
或者如果你传递了一个URL,你可以使用
直接加载它NSURLRequest* request = [NSURLRequest requestWithURL: self.urlToLoad];
[webView loadRequest:request];
希望它有所帮助!!