编辑:请在此处观看我的问题视频: https://www.dropbox.com/sh/lzgs9mahx5mea13/AADLYfLQix7MDleDN1ER81qVa?dl=0
我在应用程序商店中有一个应用程序,在iOS 9上运行得很好。
然而,在iOS 10上(在具有最新测试版的设备iPhone 6s上测试),当选择主视图控制器上的单元格并且按下#34;时,我的导航栏的标题为#34;和导航栏按钮消失。
只有后退按钮可见。
即使我通过点击后退按钮或向后滑动回到主人身上,他们也不会回来。弹回后,即使是#"主人"标题和栏按钮消失了。我不知道如何解决这个问题,因为没有错误。
在我的代码中,我没有将导航栏隐藏在任何地方,也没有对导航控制器做任何想象。
注意标题和我的右边栏按钮背后的其他一些视图。后退按钮位于最前面。这表明按钮和标题没有隐藏,它们被3个额外的视图覆盖:UIVisualEffectView,_UIVisualEffectBackdropView和_UIVIsualEffectFilterView
同样在视频中,您会注意到如果我向后滑动一半,则取消滑动,条形按钮会返回。但标题没有。
返回主人后,请注意主人的导航栏内容与其他2个私人课程视图重叠:
我以编程方式推送到详细信息: 相关代码:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
PlaylistDetailViewController *pdvc = (PlaylistDetailViewController*)[self.storyboard instantiateViewControllerWithIdentifier:@"PlaylistDetailViewController"];
pdvc.indexPath=indexPath;
[self.navigationController pushViewController:pdvc animated:YES];
}
答案 0 :(得分:4)
我也遇到了这个问题,到目前为止建议的所有解决方案都是:
最后我发现这是因为iOS10中UINavigationBar的更新绘制周期造成的。
为了解决这个问题,我必须解决这个问题:
self.navigationController.navigationBarHidden = YES;
self.navigationController.navigationBarHidden = NO;
它基本上是触发导航栏重绘。
它们仍然很烦人,他们怎么能推出一个新版本的操作系统来破坏这个重要的东西。
答案 1 :(得分:3)
我遇到了同样的问题,但这是因为使用了添加模糊视图的自定义UINavigationBar。 iOS10看起来有些变化,当向导航栏添加标题或按钮时,它们将被添加到特定索引而不是附加到子视图堆栈。
我能够通过覆盖方法insertSubview:atIndex
并确保blurView始终插入子视图堆栈的后面来克服此问题。
答案 2 :(得分:1)
我遇到的问题就像你现在面对的一样。我在代码及其工作中做了一些更改。在我的viewWillAppear
中,在dispatch_async
dispatch_async(dispatch_get_main_queue(), ^{
//BACK BUTTON CALLING
//NAVIGATION TITLE
});
[super viewWillAppear:animated];
这将帮助您在主队列的帮助下设置标题和后退按钮。
答案 3 :(得分:0)
GKFadeNavigationController
删除它,以解决问题。
答案 4 :(得分:0)
如果您使用LTNavigationBar库(https://github.com/ltebean/LTNavigationBar)
,则同样存在问题我的解决方法是更改UINavigationBar + Awesome.m中的代码:
<script>
答案 5 :(得分:0)
Swift 3.0解决方法:
子类UINavigationBar并覆盖 insertSubview(_ view:UIView,at index:Int)
customButtons: {
addRemoveResource: {
text: 'refetchResources',
click: function() {
t.someParam=!t.someParam;
$calendar.fullCalendar('refetchResources');
}
}
答案 6 :(得分:-1)
我为自己的工作找到了一份宣言。创建一个视图(viewBackground),其中包含符合导航栏的所有图像和颜色,然后将其转换为图像并将其用作背景。
git push --tags