从UITableView加载UIWebView

从UITableView加载UIWebView,uitableview,uiwebview,Uitableview,Uiwebview,在我的代码中有一部分我有点困惑,我基本上想做的是加载,一旦你点击UITableView中的Google,它就会从一个单独的视图控制器(UIWebView)加载Google。我已经编写了我认为正确的代码,尽管当我点击谷歌时,什么也没发生。我没有收到任何错误,应用程序运行良好正如我所说的,一旦点击所选字段,它就不会在任何地方出现&在你说任何事情之前,我记得将UIWebView控制器导入到我的第一个view controllers.m文件中 这是我的第一个视图控制器 @interface YoMaFi

在我的代码中有一部分我有点困惑,我基本上想做的是加载,一旦你点击UITableView中的Google,它就会从一个单独的视图控制器(UIWebView)加载Google。我已经编写了我认为正确的代码,尽管当我点击谷歌时,什么也没发生。我没有收到任何错误,应用程序运行良好正如我所说的,一旦点击所选字段,它就不会在任何地方出现&在你说任何事情之前,我记得将UIWebView控制器导入到我的第一个view controllers.m文件中

这是我的第一个视图控制器

@interface YoMaFifthViewController : UITableViewController

{

NSArray *data, *sites;
} 


@end
这是我的第一个视图控制器

- (void)viewDidLoad
{
[super viewDidLoad];

data = [NSArray arrayWithObjects:@"Website", @"Developer", nil];
sites = [NSArray arrayWithObjects:
         @"https://www.google.co.uk/",
         @"https://www.google.co.uk/",
         nil];
`

`

`

这是我的UIWebViews.h

`

&这是UIWebViews.m

`


我猜url是在执行viewDidLoad方法之后设置的。无论如何,在setter中使用loadURL方法(或者使用一些公共方法重新加载url并刷新webview)不是一个坏主意


你确认你所有的方法都被击中了吗?此外,视图是否会更改,但url是空的?我试图将您所说的实现到我的代码中,尽管我遇到了许多错误。这是WebView控制器。m,请在那里实现它。我是否需要对我的WebView控制器.h,我的第一个视图控制器.h&.m进行任何更改,或者只是WebView.mI做了两件事。首先,我将加载url代码分解为一个单独的函数。这使得从多个地方打电话变得容易。其次,我在您的站点设置程序中调用了loadURL。这将在属性更改时加载传入的url。你以前有什么问题,现在又有什么问题?视图是否会更改,但webview不会加载url?视图根本不会更改,我在TableView上单击所选字段,该字段会以蓝色高亮显示。虽然它不会更改视图,但它只会停留在同一页面上。下面是所发生情况的图像:-您可以在-(void)TableView:(UITableView*)中设置断点吗tableView DidSelectRowatineXpath:(NSIndexPath*)indexPath,并确保您的代码在选择行时命中此方法?我会这样做,尽管我不知道如何做!
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
 // Configure the cell...

cell.textLabel.text = [data objectAtIndex:indexPath.row];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
#pragma mark - Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{
YoMaWebsiteViewController *wvc = [[YoMaWebsiteViewController alloc]     initWithNibName:@"YoMaWebsiteViewController" bundle:nil];
wvc.site = [sites objectAtIndex:indexPath.row];
[self.navigationController pushViewController:wvc animated:YES];

}
@interface YoMaWebsiteViewController : UIViewController
{

IBOutlet UIWebView *webview;

}

@property (retain) NSString *site;


@end
- (void)viewDidLoad
{
[super viewDidLoad];

NSURL *url = [NSURL URLWithString:self.site];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webview loadRequest:request];
-(void)setSite:(NSString*)s {
    _site = s;

    if(webview) {
        [self loadURL];
    }
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    if([self.site length] > 0) {
        [self loadURL];
    }
}

-(void)loadURL {
    NSURL *url = [NSURL URLWithString:self.site];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webview loadRequest:request];
}