cob*_*ber 26 uinavigationbar uinavigationcontroller ios ios7
我遇到了一个问题,我的导航控制器在启动然后取消新的iOS 7后滑动手势后变得无法使用.
一些相关信息:
主页取消隐藏viewWillDisappear中的导航栏
-(void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// Let's hide the navbar when we show the home view
[self.navigationController setNavigationBarHidden:YES];
…
}
-(void) viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
// Let's hide the navbar when we show the home view
[self.navigationController setNavigationBarHidden:NO];
}
Run Code Online (Sandbox Code Playgroud)当用户点击主页上的活动图标时,活动的视图控制器被推送到堆栈上.
如果用户开始在iOS中使用新的后滑动手势,但随后停止手势(即决定不返回),一切看起来都不错.但是,如果用户导致另一个视图控制器被推到导航堆栈上,那么唠叨条就会变得无法使用,并且用户无法从当前视图控制器导航回来.
笔记
Tre*_*ger 16
不确定你是否已经解决了这个问题,但我遇到了同样的问题,但有一点不同.如果我将setAnimated设置为NO,导航堆栈只会混乱.
这样可行:
[self.navigationController setNavigationBarHidden:YES animated:YES];
...
[self.navigationController setNavigationBarHidden:NO animated:YES];
Run Code Online (Sandbox Code Playgroud)
但这不是:
[self.navigationController setNavigationBarHidden:YES animated:NO];
...
[self.navigationController setNavigationBarHidden:NO animated:NO];
Run Code Online (Sandbox Code Playgroud)
如果你真的希望动画因为任何原因而变为NO,那么解决方法是将alpha设置为0/1而不是隐藏/取消隐藏NavigationBar:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.navigationController.navigationBar.alpha = 0.0f;
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.navigationController.navigationBar setAlpha:1.0f];
}
Run Code Online (Sandbox Code Playgroud)
缺点是没有很好的幻灯片到流行过渡动画.如果您确实找到了更好的方法,请告诉我们.
更新:现在已经过时了,但我通过不确保在viewWillAppear中恢复当前视图中viewWillDisappear中的任何状态而解决了我的问题.请勿在viewWillDis中删除您无法再次设置的内容.
这是取消弹出动画时发生的情况:
我想在这个勇敢的新世界中,viewWillDisappear/viewWillAppear并不总是意味着视图"将"消失/出现:)
| 归档时间: |
|
| 查看次数: |
5488 次 |
| 最近记录: |