3

我有一个使用导航控制器的具有多个视图的应用程序。在某些视图上,我需要一个带有与该视图相关的按钮的工具栏。虽然我已经成功地将自定义按钮添加到某些视图的工具栏,但我在维护这些工具栏的状态时遇到了很大的问题。例如,当导航到具有自定义工具栏的视图时,应用程序中的所有其他视图似乎都继承了该工具栏的状态。例如,视图“A”需要一个带有按钮“X”的工具栏。这按计划工作。但是,当导航到视图“B”时,视图 A 的工具栏被加载到视图 B 中。

我曾尝试取消配置 viewDidDisappear 上的工具栏,但结果有限。使用此方法时,删除自定义项目存在延迟。例如,当导航到另一个视图时,按钮在下一个视图加载之前不会消失。

真的,我所需要的只是一个工具栏,它位于视图的底部,并且在用户滚动视图时不会滚动。似乎实现这一点的唯一方法是将其锁定到导航控制器的工具栏中。但是,这种方法会产生许多其他问题,包括上述问题。

同样,我正在寻找的行为是有一个工具栏,它始终位于视图的底部,并且独立于视图/表格视图的滚动。有没有办法在不使用导航控制器的情况下实现这一点?谢谢!

4

2 回答 2

0

这是我的解决方案:在 ViewController 中实现这些方法。

 - (void)viewDidLoad
 {
     self.navigationController.toolbarHidden = NO;
 }

 - (void)viewDidAppear:(BOOL)animated
 {
     self.navigationController.toolbarHidden = NO;
     [super viewDidAppear:animated];
 }

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

 - (void)viewDidDisappear:(BOOL)animated
 {
     self.navigationController.toolbarHidden = YES;
     [super viewDidDisappear:animated];
 } 
于 2013-12-25T03:26:40.993 回答
0

您正在寻找这个属性:hidesBottomBarOnPush(在 SB 上可用)?在除 A 之外的每个导航控制器的视图上将此属性设置为 YES 。

于 2014-07-18T10:41:50.580 回答