Tri*_*ane 4 uinavigationbar uinavigationcontroller uibarbuttonitem viewdidappear ios
我正在为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)
yuj*_*uji 18
假设您有两个ViewControllers,A和B,当A位于最顶端时,您将B推入堆栈,并且您想要自定义B位于顶部时显示的后退按钮.
通常情况下,要做到这一点的方法是设置的ViewController 一个的navigationItem.backBarButtonItem.
相反,你正在做的是通过设置它来为ViewController B提供导航栏左侧的自定义按钮navigationItem.leftBarButtonItem.
你已经实施了接近正常,但即使您没有设置的ViewController 一个的navigationItem.backBarButtonItem,默认情况下,你仍然可以获得一个默认的后退按钮以及.因此,该按钮可能会显示在您的自定义后退按钮之上.
如果您设置ViewController B,navigationItem.hidesBackButton = YES那么您应该没有任何问题.
在将来,当您实现自定义后退按钮时,您应该通过设置navigationItem.backBarButtonItem而不是navigationItem.leftBarButtonItem.在一个调整,你必须提出的是,使用这种方法,例如你可以使用的ViewController 一个的navigationItem来换按钮时显示的ViewController 乙是在上面.
| 归档时间: |
|
| 查看次数: |
20773 次 |
| 最近记录: |