我有一个UITableView
,当一个项目被选中时,我加载WebView
,如下所示:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSURL *url=[NSURL URLWithString:[[nameCatalog objectAtIndex:indexPath.row] valueForKey:@"url"]];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
[self.view addSubview:webView];
[webView setHidden:NO];
}
我想要做的是实施BackButton
所以当我在网页浏览时,我可以回到UITableView.
所以我这样做了:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSURL *url=[NSURL URLWithString:[[nameCatalog objectAtIndex:indexPath.row] valueForKey:@"url"]];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
[self.view addSubview:webView];
[webView setHidden:NO];
UIBarButtonItem *infoButton = [[UIBarButtonItem alloc]
initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(info_clicked:)];
self.navigationItem.leftBarButtonItem = infoButton;
}
- (void) info_clicked:(id)sender {
self.navigationItem.leftBarButtonItem = nil;
[webView removeFromSuperView];
}
但是当我加载webview
时,没有按钮出现。!!!!!
请帮助!
答案 0 :(得分:1)
可能是因为您要将webview添加为子视图,而不是在堆栈上推送另一个viewController。
此外:后退按钮由视图控制器的标题配置。要将其更改为后退按钮,您需要在按下视图之前在视图中创建后退按钮。我有两个例子:
BackButton.zip,显示了如何在视图控制器的init方法中配置后退按钮。
LoadWebViewTable.zip显示了如何在awakeFromNib
方法中配置后退按钮。这个例子我认为你的应用程序更紧密。
重点是后退按钮在视图中配置为返回。此外,这两个示例都使用了无目标操作,因此您甚至不需要回调来从堆栈中弹出视图 - 它是免费的。
答案 1 :(得分:1)
为此,请将Web视图放在不同的视图控制器中并使用
[self.navigationController pushViewController:webViewController animated:YES];
而不是
[self.view addSubview:webView];
答案 2 :(得分:0)
也许你应该在界面中做一些这样的事情。将表视图连接到您的代码。将界面中的按钮连接到IBAction,在启动应用程序时隐藏,然后当用户单击表格视图单元格时,取消隐藏按钮。
希望这有帮助!