我介紹模態視圖控制器,打包在UINavigationController中。模態視圖控制器 - UIBarButtonItems不會持續
當它們第一次出現時,酒吧按鈕項目是正常的。
但是,如果我點擊一個按鈕,一個新的視圖控制器推到UINavigationController的,然後我用視圖控制器的後退按鈕,它被趕回來的原模態視圖控制器,的按鈕不顯示,(但他們工作時,我點擊它們 - >只是看不到他們)
我似乎無法弄清楚爲什麼會發生這種情況。
這是一些代碼。
哦,順便說一句,我定製了導航控制器的導航欄的背景。我有一種感覺,這可能會導致這種視覺干擾,但我不知道如何改變才能正確使用。
在GGMainViewController:
GGSelectTeamsViewController *chooseTeam = [[GIFSelectTeamsViewController alloc] init];
UINavigationController* navigationController = [[UINavigationController alloc] initWithRootViewController:chooseTeam];
[self setupModalNavigationBar:navigationController];
[self presentViewController:navigationController animated:YES completion:nil];
- (void)setupModalNavigationBar:(UINavigationController *)nav {
// unnecessary code removed for a quicker read
// basically navigation bar has a background gradient as well as a bottom border
[nav.navigationBar.layer addSublayer:bottomBorder];
[nav.navigationBar.layer addSublayer:gradient];
}
在GGSelectTeamsViewController
- (void)viewDidLoad
{
[super viewDidLoad];
title = [[UILabel alloc] init];
title.text = someText;
title.backgroundColor = [UIColor clearColor];
title.textColor = [UIColor whiteColor];
self.navigationItem.titleView = title;
[title sizeToFit];
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[backButton setTitle:@"Back" forState:UIControlStateNormal];
[backButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
backButton.frame = someFrame;
[backButton addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
[self.navigationItem setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:backButton] animated:NO];
UIButton *selectButton = [UIButton buttonWithType:UIButtonTypeCustom];
[selectButton setTitle:@"Select" forState:UIControlStateNormal];
[selectButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
selectButton.frame = someFrame;
[selectButton addTarget:self action:@selector(sendContent) forControlEvents:UIControlEventTouchUpInside];
[self.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:selectButton] animated:NO];
}
由於導航項目在viewDidLoad方法設置,爲什麼我不能看到他們(但他們仍然功能)時,我從另一個視圖控制器返回它?
如果您註釋掉,你叫setupModalNavigationBar行,它正常工作? – rdelmar
是的,我試過了,它在setupModalNavigationBar方法中沒有導航欄自定義的情況下運行良好,有沒有用代碼自定義它,沒有這些錯誤?我正在考慮使用背景圖片,以查看問題是否仍然存在@rdelmar – GangstaGraham