Objective c &引用;[setToolBarHidden:是]";不起作用
我有一个UINavigationController,在其中一个视图控制器中,我正在使工具栏不隐藏在ViewDid中。很好用。但是,在ViewDidEnglishe中,我将其设置为隐藏,但它不会被隐藏。我做错了什么?以下是相关代码: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];
- (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本应该可以工作,但它没有工作。为什么会这样?我希望它能在我看来起作用。您是否使用下面另一个答案中的代码进行了尝试?