如何使用 UIappearance 在根视图控制器中获取透明导航栏
Posted
技术标签:
【中文标题】如何使用 UIappearance 在根视图控制器中获取透明导航栏【英文标题】:How to get transparent navigation bar in root viewcontroller using UIappearance 【发布时间】:2014-03-07 10:10:47 【问题描述】:在我的应用程序代表中,我指定了一个透明工具栏(如对问题 18969248 的回答中所建议):- 代码是:
UINavigationBar *navigationBarAppearance = [UINavigationBar appearance];
navigationBarAppearance.backgroundColor = [UIColor clearColor];
[navigationBarAppearance setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
navigationBarAppearance.shadowImage = [[UIImage alloc] init];
navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
这适用于所有推送到导航控制器堆栈的视图控制器,但不适用于根视图控制器(从 NIB 加载)。 如何在根视图控制器的导航栏中获得透明度?
【问题讨论】:
【参考方案1】:如果您使用故事板,也许您应该通过 AppDelegate 以编程方式加载您的 RootViewController:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"yourStoryboard"
bundle: nil];
YourCustomRootViewController *customRootVC = (YourCustomRootViewController*) [mainStoryboard instantiateViewControllerWithIdentifier:@"firstAddProductViewController"];
// If you're not using storyboard, simply instantiate it this way
YourCustomRootViewController *customRootVC = [[YourCustomRootViewController alloc] initWithNibName:@"yourNib" bundle:nil];
/* In here, you want to add the code relative to the navigation bar of your rootVC */
[self.window setRootViewController:customRootVC];
【讨论】:
以上是关于如何使用 UIappearance 在根视图控制器中获取透明导航栏的主要内容,如果未能解决你的问题,请参考以下文章
除了在模态视图控制器中使用 UIAppearance 样式吗?