Objective c &引用;[setToolBarHidden:是]";不起作用

Objective c &引用;[setToolBarHidden:是]";不起作用,objective-c,ios,cocoa-touch,uitoolbar,Objective C,Ios,Cocoa Touch,Uitoolbar,我有一个UINavigationController,在其中一个视图控制器中,我正在使工具栏不隐藏在ViewDid中。很好用。但是,在ViewDidEnglishe中,我将其设置为隐藏,但它不会被隐藏。我做错了什么?以下是相关代码: - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; [[self navigationController] setToolbarHidden:NO];

我有一个UINavigationController,在其中一个视图控制器中,我正在使工具栏不隐藏在ViewDid中。很好用。但是,在ViewDidEnglishe中,我将其设置为隐藏,但它不会被隐藏。我做错了什么?以下是相关代码:

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

    [[self navigationController] setToolbarHidden:NO];

    UIBarButtonItem *buttomSubmit = [[UIBarButtonItem alloc] initWithTitle:@"Submit" 
                                                                   style:UIBarButtonItemStyleBordered 
                                                                  target:self 
                                                                  action:@selector(done)];
    UIBarButtonItem *buttonPrint = [[UIBarButtonItem alloc] initWithTitle:@"Print" 
                                                                     style:UIBarButtonItemStyleBordered 
                                                                    target:self 
                                                                    action:@selector(done)];
    UIBarButtonItem *buttonUnits = [[UIBarButtonItem alloc] initWithTitle:@"Units" 
                                                                    style:UIBarButtonItemStyleBordered 
                                                                   target:self 
                                                                   action:@selector(done)];
    UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace 
                                                                               target:nil 
                                                                               action:nil];

    [self setToolbarItems:[NSArray arrayWithObjects:buttonUnits, flexSpace, buttomSubmit, buttonPrint, nil]];

    [buttomSubmit release];
    [buttonPrint release];
    [buttonUnits release];
    [flexSpace release];
}

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    [[self navigationController] setToolbarHidden:YES];
}

谢谢

视图消失
在视图离开屏幕后调用。如果视图因按下后退按钮而离开屏幕,则视图将从导航控制器堆栈中弹出

从navigationController属性的注释中:

仅当视图控制器处于其位置时才返回导航控制器 堆栈如果无法创建导航控制器,则此属性为nil 找到了

这意味着
[self-navigationController]
返回nil,因此
setToolbarHidden
消息被发送到nil且无效


要在新视图加载后隐藏它(这似乎是您想要的),您可以使用新视图控制器的
viewdideappease
方法进行隐藏。

viewdidegase
在视图离开屏幕后调用。如果视图因按下后退按钮而离开屏幕,则视图将从导航控制器堆栈中弹出

从navigationController属性的注释中:

仅当视图控制器处于其位置时才返回导航控制器 堆栈如果无法创建导航控制器,则此属性为nil 找到了

这意味着
[self-navigationController]
返回nil,因此
setToolbarHidden
消息被发送到nil且无效


要在新视图加载后隐藏它(这似乎是您想要的),您可以使用新视图控制器的
viewdide
方法进行隐藏。

可以在视图离开屏幕之前隐藏它

-(void)viewWillDisappear:(BOOL)animated{
     [super viewWillDisappear:animated];
     [self.navigationController setToolbarHidden:YES animated:YES];
}

在视图离开屏幕之前可以隐藏它

-(void)viewWillDisappear:(BOOL)animated{
     [super viewWillDisappear:animated];
     [self.navigationController setToolbarHidden:YES animated:YES];
}

ViewWillEnglish本应该工作,但它没有。为什么会这样?我希望它能在我看来起作用。您是否使用下面另一个答案中的代码进行了尝试?ViewWillEnglish本应该可以工作,但它没有工作。为什么会这样?我希望它能在我看来起作用。您是否使用下面另一个答案中的代码进行了尝试?