我有一个使用导航控制器的多个视图的应用。在某些视图中,我需要一个带有与该视图相关的按钮的工具栏。虽然我已经成功地将自定义按钮添加到某些视图的工具栏,但是我在维护这些工具栏的状态时遇到了很大的问题。例如,导航到具有自定义工具栏的视图时,应用程序中的所有其他视图似乎都会继承该工具栏的状态。例如,视图“A”需要一个带有按钮“X”的工具栏。这按计划进行。但是,当导航到视图“B”时,视图A的工具栏将加载到视图B中。
我尝试在viewDidDisappear上取消配置工具栏,结果有限。使用此方法时,删除自定义项目会有延迟。例如,导航到另一个视图时,按钮不会消失,直到加载下一个视图。
真的,我需要的是一个工具栏,它停留在视图的底部,当用户滚动视图时不会滚动。似乎实现此目的的唯一方法是将其锁定到导航控制器的工具栏中。但是,这种方法会产生许多其他问题,包括上面提到的问题
同样,我正在寻找的行为是让工具栏始终位于视图的底部,并且独立于视图/ tableview的滚动。有没有办法在不使用导航控制器的情况下实现这一目标?谢谢!
答案 0 :(得分: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];
}
答案 1 :(得分:0)
您正在寻找此属性: hidesBottomBarOnPush (可在SB上找到)?您在每个导航控制器的视图中将此属性设置为YES,但是A。