【发布时间】:2011-08-17 23:52:08
【问题描述】:
我正在编写一个基于 UINavigationController 的 iPhone 应用程序。我正在从有时返回虚假链接的服务器中提取数据。我通过推送 webview 视图控制器打开每个链接。我希望能够包含一些错误处理。我知道链接是否不好。所以我希望能够在我知道我的 webview 遇到错误后立即弹出 webview 视图控制器。
目前,我已尝试使用以下代码:
[self.navigationController popViewControllerAnimated:YES];
然后我得到一个导航栏,其中没有显示任何内容,但是如果我单击“后退”按钮应该在的位置,它会正常运行。当我单击“后退”按钮应位于的位置时,会弹出标题。视图控制器通常在那里显示内容的视图也是空白的,即使我弹回 UITableViewController。
我已经尝试过这个解决方法:
UINavigationController *nav = self.navigationController;
[self.navigationController popViewControllerAnimated:YES];
[nav.visibleViewController.view setNeedsDisplay];
我检查了 UINavigationController 中的 viewControllers 数组,其中包含正确的 viewcontrollers(即它已删除 webview 的 viewcontroller)。
我还尝试将代码放入要返回的视图控制器的 viewWillAppear 中,但该方法永远不会被调用。
我正在寻找一种方法来强制 UINavigationController 重新加载,就像在 UITableView 上调用 reloadData 一样。
任何帮助将不胜感激。
【问题讨论】:
-
你能展示你用来推送视图控制器的代码吗?
-
当然。 [self.navigationController pushViewController:wv 动画:YES];其中 wv 是已分配、初始化并传递它正在加载的 url 的 webview 视图控制器。
标签: iphone objective-c cocoa-touch uinavigationcontroller