2011-05-03 40 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和编程制作导航栏弹出的看法时,这可能发生,坚持使用一个或另一个用于所有的导航栏哟