2011-11-16 63 views
0

我想創建一個應用程序,在那裏我會說10個錶行(列表視圖),每個都有一個細節視圖。現在對於每個細節視圖,我想顯示10個不同的遠程htmls(在UIWebView中)?推UIWebView作爲詳細視圖(表)

我該怎麼做?我應該使用數組來存儲10個URL嗎?如何將URL從列表傳遞到詳細信息視圖?

只需添加,我也想在細節視圖上顯示iAd。所以希望可以輕鬆整合。

任何具有參考源代碼的示例應用程序都很棒。

請幫幫我。謝謝。

回答

2

您可以創建一個充當「詳細視圖」的WebViewController。將一個新的UIViewController子類添加到您的項目中,並將UIWebViewADBannerView添加到您的筆尖文件。爲您的webView創建一個出口,你應該很好去。從你的列表視圖中,您可以創建一個新detailViewController和加載行特有的URL到web視圖:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSString* url = [[dataArray objectAtIndex:indexPath.row] objectForKey:@"url"]; 
    if (![url isEqualToString:@""]) { 
     WebViewController* detailViewController = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil]; 
     [self.navigationController pushViewController:detailViewController animated:YES]; 
     [detailViewController.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]]; 
     [detailViewController release]; 
    } 
} 

這是一個快速的方法來做到這一點 - 你可以創建一個接受URL的定製-init方法如果你想。你也應該使用UIWebViewDelegate的方法,以顯示有關webView的一些負載反饋/錯誤信息:

@interface WebViewController : UIViewController <UIWebViewDelegate> { 
    IBOutlet UIWebView* webView; 
} 
+0

Thx很多...你已經很好地解釋了大部分的東西..我想用第一種方法去..所以只是有一個問題,我將如何定義「dataArray 「?只需再次添加,我想要顯示多個位於遠程的.html文件... http://mySite.com/page1.html,.../page2.html,....../page5.html .. .A1現在... – testndtv

+0

'NSString * url = [NSString stringWithFormat:@「http://www.mySite.com/page%i.html」,indexPath.row];' – phi

+0

我想那個應該工作。唯一的事情,我將不得不改變我的命名約定從很明顯像myTitlePage.html page1.html ... – testndtv

0

您希望能夠將數據從一個viewController傳遞到另一個viewController。這樣做的正確方法是使用協議和委託

這裏看看這個例子 - Sharing data between view controllers and other objects @ iPhone開發SDK

工作得很好,讓我傳遞一個字符串和數組前,我的觀點之間回來。

+0

THX了很多...我無法找到實際的例子,其中一個列表視圖推一個UIWebView作爲詳細視圖... – testndtv