【发布时间】:2016-04-05 20:51:58
【问题描述】:
我正在开发一个应用程序,其中有一个主视图控制器,上面有一个表格视图。当用户触摸表格视图的一个项目时,应用程序会转到详细视图控制器。 详细视图控制器有一个清晰的颜色导航栏,而主视图控制器有一个白色导航栏。 我的问题是,当我在详细视图控制器中并拖动视图的左边框并尝试向左滑动以返回主视图控制器时,导航栏变为白色。如果我没有完成移动并停留在详细视图控制器上,导航栏将保持白色。 这张 gif 更好地展示了这种情况:
那么,当我尝试拖动视图时,如何避免导航栏变白?
更新: 在主视图控制器上:
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:YES];
self.navigationController.navigationBar.translucent = NO;
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
}
在细节视图控制器上:
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
self.navigationController.toolbarHidden = YES;
self.navigationController.toolbar.tintColor = [UIColor clearColor];
}
- (void)viewDidLoad{
[super viewDidLoad];
self.navigationController.navigationBar.translucent = YES;
}
【问题讨论】:
-
你能给我们看一些代码吗?您如何以及何时设置导航栏的颜色?
-
@Randy 我刚刚用一些代码编辑了这个问题。
-
您可以尝试将您在
viewDidLoad和viewWillAppear中的操作移动到viewDidAppear吗? (在您的详细视图控制器中) -
不客气,我加了一个答案,你可以接受,这样大家就可以快速看到了
标签: ios objective-c uinavigationbar