2011-05-03 95 views
0

我在寫一個基於UINavigationController的iPhone應用程序。我從服務器提取數據,有時會返回虛假鏈接。我通過推動webview viewcontroller打開每個鏈接。我想能夠包含一些錯誤處理。我知道這個鏈接是不是很好。所以我希望能夠在我知道我的webview遇到錯誤時立即彈出webview視圖控制器。當我使用popViewControllerAnimated獲取空視圖和空白導航欄

目前,我使用下面的代碼嘗試:

[self.navigationController popViewControllerAnimated:YES]; 

然後我得到它什麼都不顯示導航欄,但如果我點擊那裏的「後退」按鈕應該是它適當地操作。當我點擊「後退」按鈕時,標題會彈出。即使我彈出回到UITableViewController,視圖控制器通常在其中顯示內容的視圖也是空白的。

我已經試過這作爲一種解決方法:

UINavigationController *nav = self.navigationController; 
[self.navigationController popViewControllerAnimated:YES]; 
[nav.visibleViewController.view setNeedsDisplay]; 

我檢查的的UINavigationController的viewControllers陣列,它有在它的右側viewcontrollers(即它已經刪除了網頁視圖的視圖 - 控制)。

我也試着把viewWillAppear的viewcontroller我彈出回來,但該方法永遠不會被調用。

我正在尋找一種方法來強制UINavigationController重新加載相同的方式,你可以在UITableView上調用reloadData

任何幫助將不勝感激。

+0

你能告訴你正在使用推碼視圖控制器? – InsertWittyName 2011-05-03 19:55:11

+0

當然。 [self.navigationController pushViewController:wv animated:YES]; wv是已經被分配,初始化然後傳遞它加載的url的webview viewcontroller。 – Cyrus 2011-05-03 21:05:12

回答

0

我在我的應用程序中看到類似這樣的內容,我在導航控制器的根視圖中使用導航條添加到Interface Builder中,然後以編程方式創建導航欄及其第二個視圖的子視圖。當我彈出第二個視圖返回到第一個視圖時,我會隱藏self.navigationcontroller欄,它會顯示下面的空白區域,直到出現前一個視圖的IB導航欄。爲了解決這個問題,我決定堅持以編程方式創建所有解決問題的導航欄。

TL; DR - 如果你同時使用IB和編程製作導航欄彈出的看法時,這可能發生,堅持使用一個或另一個用於所有的導航欄喲