I'm developping an app for iOS 4.2+.
I subclassed my UINavigationController
to insert two UIImageView
and make the navigation bar look custom.
Everything is working great but I have a little problem.
I created custom UIBarButtonItem
and inside my view controllers i put them with :
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:backButton];
It works too but the problem is that to make this work I need to call it from:
- (void)viewDidAppear:(BOOL)animated ;
So it only appears after the animation and I can see the non customized button 1 second before the customized one replace it.
(I tried with viewWillAppear
but then nothing append in navigationbar)
I would like to know if you have a solution that could correct this problem.
PS: I never use IB, everything is made programmatically.
Thanks from France !
EDIT 1: here is the code that didn't show anything for viewWillAppear
:
- (void)viewWillAppear:(BOOL)animated {
[self setTitle:@"Jeu"];
//Bouton testflight
TIFButton *testFeedbackButton = [[TIFButton alloc]init];
[testFeedbackButton setTitle: @"Envoyer un Feedback" forState:UIControlStateNormal];
[testFeedbackButton addTarget:self action:@selector(launchFeedback) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *testFeedback = [[UIBarButtonItem alloc] initWithCustomView:testFeedbackButton];
self.navigationItem.rightBarButtonItem = testFeedback;
TIFBackButton *backButton = [[TIFBackButton alloc]init];
[backButton setTitle: @"Retour" forState:UIControlStateNormal];
[backButton addTarget:self action:@selector(popToPrecedentViewController) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:backButton];
}
viewWillAppear
, but yourbackButton
view needs to be instantiated / created before you assignself.navigationItem.leftBarButtonItem
. – Swallow