2011-09-13 91 views
1

我有一個UITableView,當一個項目被選中我加載WebView這樣的:後退按鈕在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沒有出現按鈕。 !!!!! 請幫忙!

回答

1

可能因爲您將webview添加爲子視圖,而不是在堆棧上推送另一個viewController。

另外:後退按鈕由視圖控制器的標題進行配置。要將其更改爲後退按鈕,您需要在推送視圖之前在視圖中創建後退按鈕。我有兩個示例:

BackButton.zip其中顯示瞭如何在視圖控制器的init方法中配置後退按鈕。

LoadWebViewTable.zip它顯示瞭如何在awakeFromNib方法中配置後退按鈕。這個例子更貼近我的想法。

重點在於後退按鈕在返回的視圖中進行配置。而且,這兩個示例都使用無目標操作,因此您甚至不需要回調即可將視圖從堆棧中彈出 - 這是免費的。

1

爲了做到這一點,把Web視圖在不同的視圖控制器,並使用

[self.navigationController pushViewController:webViewController animated:YES];

,而不是

[self.view addSubview:webView];

+0

該按鈕仍然不會出現 – adrian

0

也許你應該做一些這方面的東西在你的界面。將表格視圖連接到您的代碼。將界面中的按鈕連接到IBAction,在啓動應用程序時隱藏,然後當用戶單擊表格視圖單元格時,取消隱藏按鈕。

希望這有助於!