我正在为iOS 4.2开发应用程序.我将子类UINavigationController插入两个UIImageView并使导航栏看起来是自定义的.一切都很好,但我有一点问题.我创建了自定义UIBarButtonItem和我的视图控制器内部我把它们:
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:backButton];
Run Code Online (Sandbox Code Playgroud)
它也有效,但问题是,为了完成这项工作,我需要调用它:
- (void)viewDidAppear:(BOOL)animated ;
Run Code Online (Sandbox Code Playgroud)
因此它只出现在动画之后,我可以看到非自定义按钮1秒钟,然后自定义按钮替换它.
(我试过viewWillAppear但在导航栏中没有任何附加内容)
我想知道你是否有解决方案可以解决这个问题.
PS:我从不使用IB,一切都是以编程方式制作的.
谢谢法国!
编辑1:这里的代码没有显示任何内容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];
}
Run Code Online (Sandbox Code Playgroud) uinavigationbar uinavigationcontroller uibarbuttonitem viewdidappear ios