【问题标题】:UIWebView: change view titleUIWebView:更改视图标题
【发布时间】:2012-02-16 23:49:34
【问题描述】:
我有一个带有 UIViewController 的故事板。在这个视图中,我放置了一个自定义 UIWebView。在我的自定义 webview 的代码中,我想更改其外部 UIViewController 的导航控件中的标题。
我尝试在 webview 中调用 superview,但这只是给了我一个 UIView。我怎样才能从这个 web 视图中更改 UIViewController 中的标题?
【问题讨论】:
标签:
iphone
objective-c
cocoa-touch
uiwebview
【解决方案1】:
这就是你要做的:
-
在UIViewController 中,我假设您已经设置了一些代码来表示这个 UIWebView?添加UIWebView 作为UIViewController 的属性(不要忘记IBOutlet 部分!)
@property (nonatomic, retain) IBOutlet UIWebView *webView;
在故事板中,将UIWebView 链接到UIViewController。
将UIViewController 设为UIWebViewDelegate(参见文档here)
-
在 UIViewController 中,实现webViewDidFinishLoad: 方法。在此方法中,UIWebView 将在页面加载完成时通知 UIViewController。然后,您可以使用以下代码将 webview 的标题分配给 UINavigationController 的标题:
NSString *pageTitle=[self.webView stringByEvaluatingJavaScriptFromString:@"document.title"];
[self.navigationItem setTitle:pageTitle];
【解决方案2】:
您需要对 UIViewController 的引用,以获取对其 NavigationItem 的引用。
试试:
[[self navigationItem] setTitle:@"new title"];
(其中self 是视图控制器)