我有3个观看次数。 (比如说第1,第2,第3)。我已经在第一个推送第二个视图(有一个加载视图方法)。在第二个视图中,我使用initWithFrame
(继承自UIWebView)创建了第三个视图。在第二个视图中,我写了self.view = 3rd view。
现在我想在第三视图中隐藏第二视图的导航栏(即,当用户触摸第三视图屏幕,即UIWebView时)。我使用手势进行了触摸识别,但我无法隐藏导航栏。
第3个视图不支持self.navigationController
。如果我在3rd中创建第二个视图的对象,它不会隐藏导航栏。有人能帮助我吗?
答案 0 :(得分:32)
确定。因此,您需要在为该选项卡创建导航控制器后立即隐藏导航栏。按下视图控制器后,您无法调整此值(据我所知)。
如果您希望第一个视图顶部没有导航栏,请在最初声明导航控制器的appDelegate中使用它:
localNavigationController = [[UINavigationController alloc] initWithRootViewController:theViewController];
[localNavigationController setNavigationBarHidden:YES animated:YES];
如果您希望隐藏之后的视图,那么您需要一个viewController用于后续视图,您将不得不添加
[[self navigationController] setNavigationBarHidden:YES animated:YES];
在你打电话之前:
[[self navigationController] pushViewController:theThirdViewController animated:YES];
希望这有帮助。
答案 1 :(得分:17)
实施这个:
[self.navigationController setNavigationBarHidden:YES animated:YES];
在分配第3个视图之前。这是self.view =第3个视图
答案 2 :(得分:0)
请注意,必须在viewWillAppear方法中添加代码
-(void) viewWillAppear:(BOOL)animated
{
self.navigationController.navigationBar.hidden = YES;
}
答案 3 :(得分:-1)
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[[self navigationController] setNavigationBarHidden:YES animated:YES];
//[self dismissViewControllerAnimated:YES completion:NULL];
}