2
iOS 4.3と5.0の両方をサポートするアプリを開発中です。ナビゲーションバーの発行iPhone 4.3
私のコードは5.0でうまく動作しますが、4.3ではトリッキーなバグがあります。
問題は次のとおりです。
私はそれでのtableViewとの見解を持っています。このビューには、左右のナビゲーションバー項目を持つナビゲーションバーがあります。テーブルビューで行を選択して(それに対応するビューに到達して)戻ったら、左右のナビゲーションバー項目が両方とも消えます。
私はここ数時間、この混乱を乗り越えてきました。
を。これは、ビューをロード私は呼んユーティリティメソッドです:
これは私がすでにやっていることです。
+ (void)setNavigationBarContents:(UIViewController *)view
{
UIImage *topBarimage=[UIImage imageNamed:NAVIGATION_BAR_IMAGE];
if([view.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) {
[view.navigationController.navigationBar setBackgroundImage:topBarimage forBarMetrics:UIBarMetricsDefault];
}
else
{
[view.navigationController.navigationBar insertSubview:[[UIImageView alloc] initWithImage:topBarimage] aboveSubview:view.navigationController.navigationBar];
}
UIImage *logo=[UIImage imageNamed:LOGO];
UIImageView *logoView=[[UIImageView alloc]initWithImage:logo];
view.navigationItem.titleView = logoView;
UIImage *settingsButtonImage= [UIImage imageNamed:NAVIGATION_SETTINGS];
UIButton *rightBarButton = [UIButton buttonWithType: UIButtonTypeCustom];
[rightBarButton setBackgroundImage: settingsButtonImage forState:UIControlStateNormal];
[rightBarButton addTarget: view action:@selector(settingsButton:) forControlEvents:UIControlEventTouchUpInside];
rightBarButton.frame = CGRectMake(0, 0, 50, 40);
view.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: rightBarButton];
UIImage *logoutButtonImage= [UIImage imageNamed:LOGOUT];
UIButton *leftBarButton = [UIButton buttonWithType: UIButtonTypeCustom];
[leftBarButton setBackgroundImage: logoutButtonImage forState:UIControlStateNormal];
[leftBarButton addTarget: view action:@selector(logout:) forControlEvents:UIControlEventTouchUpInside];
leftBarButton.frame = CGRectMake(0, 0, 65, 32);
view.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: leftBarButton];
}
viewDidLoadとviewWillAppearの両方でこの呼び出しを試みましたが、無駄です。
これは私がviewControllerでこれを呼び出す方法です。
- (void)viewDidLoad
{
[super viewDidLoad];
//other setups here.
[Utility setNavigationBarContents:self];
}
を を追加することにより、溶液がViewWillAppear [ユーティリティsetNavigationBarContents:自己]でこのコードを試してみてくださいました。 – Splendid
私はすでにこれを試したことがあります。あなたの素早い返信をありがとう – Guru
バーのボタンアイテムだけが消えたり、ナビゲーションバーが消えてしまいますか? – Splendid