2011-09-06 51 views
0

在我支持IOS4和更高版本的通用應用程序中,我有一個UINavigationController並使用UITableViewController來推送UITableViews。iPhone:如何在UITableView上顯示UIWebview?

某些頁面可能需要在HTML中顯示一些消息,所以我想使用WebView。所以我想像這樣;

當一個新的tableview推我會檢查它是否需要顯示的任何消息,如果是新的窗口將網頁視圖開拓上的tableview的頂部覆蓋說不定屏幕%80和tableview中那個被禁用那一刻,當用戶完成閱讀webview時,他們將關閉它,tableview將再次被激活。此外,導航欄上還會有一個消息圖標重新打開並重新讀取消息。

我該如何做到這一點?

+0

爲什麼不把整個屏幕閱讀?剩下的20%是否對用戶有用?即使對於桌面瀏覽器來說,閱讀網頁的模式框也是一個壞主意。 –

+0

@ vk.edward.li那不是網頁,但shwoing應用程序中的一些HTML內容 – Spring

回答

1

呈現網頁視圖出現模態時的tableview:

創建的ViewController(具有網頁視圖):

UIViewController *webUIViewController = [[UIViewController alloc] init]; 

定位導航控制器:

UINavigationController *myNavController = [self navigationController]; 

出示網頁視圖模態:

[myNavController presentModalViewController:webUIViewController animated:YES]; 

我可能只會對應用程序包中本地存儲的Web文檔執行此操作 - 但您希望用戶獲得任何網絡加載的反饋,以及如果他們沒有Internet連接?

+0

tnx我試過似乎工作,但;我怎樣才能使它不覆蓋整個屏幕,但在tableview之上,以及如何在完成時關閉? – Spring

+0

我不認爲webview必須填充viewcontroller的視圖 - 使視圖的背景顏色透明。在模態視圖中添加一個自定義關閉按鈕,以調用父視圖控制器中關閉模態視圖的方法。 – ader

0

您可以使用[[cell contantView] addSubview:aWebView]

例如,你有一個布爾值:iMustShowAWebView

中的cellForRowAtIndexPath

if (iMustShowAWebView) { 
    [[cell contantView] addSubview:aWebView] 
} 

在heighForRowAtIndexPath

if (iMustShowAWebView) 
    return 44; 
else 
    return 0; 
相關問題