So I am using the UINavigationBar component of iOS7, but not the UINavigationController itself. When I push a new view with my custom navigation controller, I want to change
You can try this one -
[self.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor colorWithRed:125/255.0 green:178/255.0 blue:15/255.0 alpha:0.2],
NSForegroundColorAttributeName,
[UIFont fontWithName:@"Helvetica-Bold" size:16.0],
NSFontAttributeName,
nil]];
If you just want to change the title attributes. Or this one to change bar alpha :
[self.navigationBar setBarTintColor:[UIColor colorWithRed:125/255.0 green:178/255.0 blue:15/255.0 alpha:0.2]];
You can set the titleView
hidden
in viewWillAppear
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationItem.titleView.hidden = YES;
}
You can't set the titleView
alpha
until viewDidAppear
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.navigationItem.titleView.alpha = 0.5f;
}
This is how I would do it:
In viewWillAppear:
of the pushed viewController, I would set it the alpha to 0 using:
[self.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[[UIColor whiteColor] colorWithAlphaComponent:0],
NSForegroundColorAttributeName,
[UIFont fontWithName:@"Helvetica-Bold" size:16.0],
NSFontAttributeName,
nil]];
In viewDidAppear:
, set it's alpha back to 1. Here you don't really need to set it's alpha to 1, just setting it to plain [UIColor whiteColor]
will do the trick.
One other thing you could do is, toggle HIDDEN
property in the 2 methods.
Setting the alpha of the titleView did not work in my case so I used the above code. It hides the title. In case you want a similar effect with the back button, you set the alpha of the backButton using self.navigationItem.backBarButtonItem.customView.alpha =