我有一个带有UIViewController的故事板。在这个视图中,我放置了一个自定义的UIWebView。在我的自定义webview的代码中,我想在其外部UIViewController的导航控件中更改标题。
我试图在webview中调用superview,但这只是给了我一个UIView。我怎样才能从这个webview中更改UIViewController中的标题?
答案 0 :(得分:2)
这是你做的:
在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];
答案 1 :(得分:0)
您需要对UIViewController的引用,以获取对其NavigationItem的引用。
尝试:
[[self navigationItem] setTitle:@"new title"];
(其中self
是视图控制器)