我有一个UITableView,显示所选部门的人名。然后,当您在TableView中选择一个人时,它会加载一个带有标签的详细信息页面及其所有联系信息;然后在底部将它们的网站加载到较小的UIWebView中。
如果您选择一个人,查看他们的信息,返回,然后选择同一部门中的其他人,UIWebView不会重新加载新选择的人的网站,它将保留在首次选择的人的网站上。
我整晚都试着让这个工作;我确信这很简单。
我已经尝试将webView设置为nil,然后在viewDidDisappear和viewWillDisappear中释放它(当你在查看一个人后返回人员列表时被调用的那些)。
我将此设置为UINavigationController。
所选人员的标签详细说明了所选人员的所有更新,但UIWebView不想重新加载。任何帮助表示赞赏!!
修改 对不起,我忘了添加代码,当我发布这个大声笑时太晚了。但是在这里我的所有标签和东西都得到了更新(我把这些线路用来清理它)。
-(void)viewWillAppear:(BOOL)animated
{
NSLog(@"willAppear");
[[self navigationItem] setTitle:[selectedPerson professorLName]];
url = [[NSURL alloc] initWithString:[selectedPerson departmentWebsite]];
NSLog(@"%@", url);
req = [[NSURLRequest alloc] initWithURL:url];
[webView loadRequest:req];
webView.scalesPageToFit = YES;
}
- (void)viewWillDisappear:(BOOL)animated
{
NSLog(@"willDis");
[super viewWillDisappear:animated];
[webView release];
webView = nil;
url = nil;
}
- (void)viewDidDisappear:(BOOL)animated
{
NSLog(@"didDisappear");
[super viewDidDisappear:animated];
[webView release];
webView = nil;
url = nil;
}
答案 0 :(得分:2)
删除viewWillDisappear
和viewDidDisappear
中的代码,然后尝试:
-(void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:selectedPerson.departmentWebsite]]];
}
请记住,如果将其放在-viewWillAppear
中,则在切换标签页(如果有的话)或应用程序到达前台时页面将重新加载。出于这个原因,我更喜欢在推送详细视图控制器时加载URL:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
SimpleWebViewController* detailViewController = [[SimpleWebViewController alloc] initWithNibName:@"SimpleWebView" bundle:nil];
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
[detailViewController release];
}
}
希望有所帮助!
答案 1 :(得分:0)
将网址吐出到您的控制台。听起来你可能正在传递相同的网址 但是,是的,fluchtpunkt是对的,让我们看看你的代码。