我有一个简单的WebView应用程序。在其中一个案例中,我显示了一个文件,允许用户返回显示UINavigationBar
:
navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 20, 320, 44)];
navigationItem = [[UINavigationItem alloc] init];
navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(buttonClicked:)];;
[navigationBar pushNavigationItem:navigationItem animated:YES];
[self.view addSubview:navigationBar];
这很好用。它显示一个后退按钮,当单击后退按钮时,它会执行选择器(必须改进按钮样式,但我是xCode
和c#
的新手,这将在稍后出现。
在选择器中我加载了上一个网址,但我无法弄清楚如何隐藏按钮和条形图。
- (IBAction) buttonClicked:(id)sender {
return [self.webView loadRequest:[[NSURLRequest alloc] initWithURL:[NSURL URLWithString: lastURL]]];
}
我尝试了几件事,比如removeFromSuperView
:
[navigationBar removeFromSuperview];
隐藏它:
[self.navigationController setNavigationBarHidden:YES animated:YES];
self.navigationController.navigationBar.hidden = YES;
// or
[navigationItem hidesBackButton];
// or
navigationBar.hidden = TRUE;
使用选择器(id)
:
[sender show:NO];
使用alpha
属性:
navigationBar.alpha = 0,0;
可用内存空间:
navigationItem.dealloc;
但没有任何作用......我想我错过了一些重要细节,因为我不知道xCode
是如何运作的......
任何帮助将不胜感激!
答案 0 :(得分:1)
就个人而言,我永远不会添加这样的导航栏,而是拥有一个根导航控制器,它有一个根视图控制器,可以在视图中保存webview。
你没说清楚,你怎么实际显示文件?
无论如何,这段代码:
[self.navigationController setNavigationBarHidden:YES animated:YES];
不适合您,因为您没有为视图控制器提供导航控制器。
在主故事板中提供一个,也许是最好的,并将您的视图控制器(包含webview)设置为其根视图控制器。为此,打开故事板,将UINavigationController拖放到主区域。您必须勾选“是初始视图控制器”选项。 注意:执行拖放操作时,已经提供了默认的根视图控制器。如果你已经在故事板中有一个,你可以离开那个,或者提供你自己的。为此,删除链接的一个,然后按住Ctrl并单击并从导航控制器拖动到视图控制器,将其设置为其根视图控制器。我附上了一张图片来展示我所描述的内容。