1

iOS 5.0 ではすべて問題ありませんが、iOS 4.0 でコードを実行すると、ナビゲーションのバー ボタンとナビゲーションのタイトルの背景画像が表示されません。

ここに私が使用しているコードがあります:

// check for version 5.0 support
navController  = [[[UINavigationController alloc] initWithRootViewController:self.viewController] autorelease];
UINavigationBar *navigationBar = [navController navigationBar];
if ([navController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
    UIImage *image = [UIImage imageNamed:@"Nav_Bar.png"];
    [navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
}

else
{
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"Nav_Bar.png"]];
    [self.navController.navigationBar addSubview:imageView];
}

次にviewDidLoad

self.title = @"MyTitle";

self.leftBTN=  [UIButton buttonWithType:UIButtonTypeCustom];
[leftBTN setImage:[UIImage imageNamed:@"BTN1.png"] forState:UIControlStateNormal];
[leftBTN setTitle:@"Edit" forState:UIControlStateNormal];
[leftBTN addTarget:self action:@selector(editOption) forControlEvents:UIControlEventTouchUpInside];
[leftBTN setFrame:CGRectMake(0, 0, 60, 30)];
self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:leftBTN] autorelease];

画像とタイトルがナビゲーションコントローラーに表示されない理由を教えてください。さらに、そのフレームをクリックすると、ボタンのアクションが機能しますが、問題はボタンが表示されないことだけです。

4

1 に答える 1

1

これは iOS 4 の問題です。ビューがナビゲーション バーに追加されると、サブビューが適切に処理されません。iOS 5 で解決されました。

このリンクを参照してください。

iOS 4 と iOS 5 の両方で、ナビゲーション バーに背景画像を表示して実行するサンプル プロジェクトがあります。

于 2012-06-15T07:03:06.383 に答える