我添加了一个自定义单元格。每当有人按下添加按钮时,会弹出警报视图,并添加网站名称。一旦按下保存,它将以他们选择的任何名称保存在表格视图单元格中。然后,一旦有人点击该单元格,我希望它在我的网页视图中加载http://。唯一的问题是它没有加载。我做错了什么?
这是我的表视图控制器
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier = @"cellTwo";
UITableViewCell *cell = [myTableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
if (indexPath.section == 0) {
cell.textLabel.text = [NSString stringWithFormat:@"%@",[tableData objectAtIndex:indexPath.row]];
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"Index Selected,%d",indexPath.row);
MainTwoViewController *View = [self.storyboard instantiateViewControllerWithIdentifier:@"mainTwo"];
View.urlString = [[NSString alloc] initWithFormat:@"http://www.%@",tableData];
View.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
}
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
//Only do the following action if the user hits the ok button
if (buttonIndex == 1) {
NSString *tapTextField = [alertView textFieldAtIndex:0].text;
if (!tableData) {
tableData = [[NSMutableArray alloc]init];
}
[tableData insertObject:tapTextField atIndex:0];
[myTableView reloadData];
}
当然我把它放在mainTwo视图控制器中,所以它加载了urlString。
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.urlString]]];
答案 0 :(得分:0)
您实例化视图控制器但不显示它。
改为使用storyboard segues并在prepareForSegue
中配置新的视图控制器。
另外,请检查以下内容:
如果您使用的是故事板,则很可能您不必在cellForRowAtIndexPath
中创建单元格。
另外,简化:
<击> [NSString stringWithFormat@"%", string];
击>
- &GT; string
最后,在加载请求之前,检查到达新视图控制器的URL。确保网址正确无误。实现UIWebViewDelegate
方法以检查加载失败或意外返回数据。
答案 1 :(得分:0)
我认为你的这段代码
View.urlString = [[NSString alloc] initWithFormat:@"http://www.%@",tableData];
应该像
View.urlString = [[NSString alloc] initWithFormat:@"http://www.%@",[tableData objectAtIndex:indexPath.row]];
在您的didSelectRowAtIndexPath方法中,建议您使用NSLog检查丢失数据的位置
答案 2 :(得分:-1)
好的,我刚刚发现了你的问题。
您应该做的是首先在自定义单元格标签上放置一个轻击手势。
UITapGestureRecognizer *openURLTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(openURLTapped:)];
keypadDisableTapGestureRecognizer.numberOfTapsRequired = 1;
keypadDisableTapGestureRecognizer.numberOfTouchesRequired = 1;
[cell.textLabel addGestureRecognizer:openURLTapGestureRecognizer];
现在,在此openURLTapped
中,您可以传递网址并将其打开。
-(void)openURLTapped:(UITapGestureRecognizer*)tap
{
// your code here
}
它肯定会解决您的问题。