我在View2中添加了一个NavigationBar和一个“后退”项,然后从该项目ctrl拖动到View1中以添加segue(一个show segue)。现在,每当使用“后退”导航到View1时,我都会获得一个到该视图(View1)的导航栏(带有“后退”项)。我只想要导航栏到View2,而不是View1。我总是可以以编程方式隐藏View1的NavigationBar,但是我想知道自己是否做错了什么。

最佳答案

您需要在ViewWillAppear中隐藏View1的导航栏,并在查看viewWillDisappear时取消隐藏:

视图1:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController.navigationBar setHidden:true];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [self.navigationController.navigationBar setHidden:false];
}


视图2:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController.navigationBar setHidden:false];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [self.navigationController.navigationBar setHidden:true];
}


可以在切换控制器时使用view1函数或view2函数中的任何一个类函数来隐藏和取消隐藏导航栏。

关于ios - segue将导航添加到 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43283410/

10-13 08:37