ios – 带视图控制器的Push / Pop View控制器,不带导航栏

我试图用一个隐藏的导航栏从视图控制器中推出一个视图控制器.

我试过各种各样的组合[[self navigationController] setNavigationBarHidden:YES animated:NO];在viewWillAppear,viewDidAppear,viewWillDisappear …等

// First View Controller

@implementation FirstViewController

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [[self navigationController] setNavigationBarHidden:YES animated:NO];

    NSLog(@"[%@ viewWillAppear]",self);
}

@end


// Second View Controller


@implementation SecondViewController

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [[self navigationController] setNavigationBarHidden:NO animated:NO];

    NSLog(@"[%@ viewWillAppear]",self);
}

@end

没有什么工作我也尝试过自定义代码来“动画化”一个推送和弹出,这是有效的,但我失去了边缘滑动和查看平移.在我深入挖掘之前,只想确保我不会重新发明.

星巴克应用程序是我想要模仿的.

应用程序的根视图控制器(深色背景视图)是全屏幕,并注意到它没有UINavigationBar.但是当您点击其中一个按钮时,它会使用UINavigationBar来推送视图控制器(浅色背景视图).从那里,如果您点击“返回”箭头,它将使用导航栏查看控制器.互动式流行滑动手势也可以.

解决方法

有可能没有一起自己解决一个解决办法.这是你做的:

你的root viewController:

@implementation ViewController

....

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    [self.navigationController setNavigationBarHidden:YES animated:animated];
}

@end

并推送viewController:

@implementation SecondViewController

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    [self.navigationController setNavigationBarHidden:NO animated:animated];
}

@end

这样做.它也保持互动过渡的工作;)

然而,我觉得令人不安的是,这种类型的功能根本没有被苹果记录下来. – 您还可以隐藏和显示具有这些“呼叫点”的工具栏(viewWillAppear

以上是来客网为你收集整理的ios – 带视图控制器的Push / Pop View控制器,不带导航栏全部内容,希望文章能够帮你解决ios – 带视图控制器的Push / Pop View控制器,不带导航栏所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。