从UITableView加载UIWebView

时间:2013-07-31 23:30:58

标签: uitableview uiwebview

我来到我的代码的一部分,我有点难过,我基本上要做的是加载一旦你在UITableView中点击谷歌,它将从单独加载谷歌查看控制器,它是一个UIWebView。我已经编码了我认为是正确的,虽然当我点击Google时,没有任何反应。我没有收到任何错误,应用程序运行正常就像我说的那样,一旦你点击选定的字段,它就不会导致任何问题。在你说什么之前我记得把UIWebView控制器导入我的第一个视图控制器.m文件。

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

@interface YoMaFifthViewController : UITableViewController

{

NSArray *data, *sites;
} 


@end

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

- (void)viewDidLoad
{
[super viewDidLoad];

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

`

- (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];

}

这是我的UIWebViews .h

`

@interface YoMaWebsiteViewController : UIViewController
{

IBOutlet UIWebView *webview;

}

@property (retain) NSString *site;


@end

&安培;这是UIWebViews .m

`

- (void)viewDidLoad
{
[super viewDidLoad];

NSURL *url = [NSURL URLWithString:self.site];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webview loadRequest:request];

1 个答案:

答案 0 :(得分:0)

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

-(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];
}