戻るボタンとビューの名前を備えたナビゲーションバーを備えた詳細ビューがあります。ナビゲーション バーはプログラムで設定されます。提示される名前はこのように設定されています。
self.title = NSLocalizedString(name, @"");
名前は表示されるビューによって異なります。
ここで、ビューに依存するナビゲーション バーにも小さなアイコンを表示したいと思います。
それ、どうやったら出来るの?
戻るボタンとビューの名前を備えたナビゲーションバーを備えた詳細ビューがあります。ナビゲーション バーはプログラムで設定されます。提示される名前はこのように設定されています。
self.title = NSLocalizedString(name, @"");
名前は表示されるビューによって異なります。
ここで、ビューに依存するナビゲーション バーにも小さなアイコンを表示したいと思います。
それ、どうやったら出来るの?
これを使用して、 背景画像をナビゲーションバーに設定できます
入れるdidFinishLaunchingWithOptions
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"title_bar.png"] forBarMetrics:UIBarMetricsDefault];
または、任意のビューで ナビゲーション バーの画像を設定できます。
UINavigationBar *navBar = [[self navigationController] navigationBar];
UIImage *image = [UIImage imageNamed:@"TopBar.png"];
[navBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
または、NavigationBar リンクにビューを設定できます
[[UINavigationBar appearance] addSubview:yourView];
また
self.navigationItem.titleView = YourView;
hを使用してタイトルを設定します
self.navigationItem.title = @"Your Title";
そして、これを使用してnavigationBarButtonを取得できます
-(void)getRightBarBtn
{
UIButton *Btn =[UIButton buttonWithType:UIButtonTypeCustom];
[Btn setFrame:CGRectMake(0.0f,0.0f,68.0f,30.0f)];
[Btn setBackgroundImage:[UIImage imageNamed:[NSString stringWithFormat:@"yourImage.png"]] forState:UIControlStateNormal];
//[Btn setTitle:@"OK" forState:UIControlStateNormal];
//Btn.titleLabel.font = [UIFont fontWithName:@"Georgia" size:14];
[Btn addTarget:self action:@selector(yourBtnPress:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithCustomView:Btn];
[self.navigationItem setRightBarButtonItem:addButton];
}
そして、ナビゲーションバーにシンプルなimageViewを設定します
UIImageView *image = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"star.png"]];
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithCustomView:image];
self.navigationItem.rightBarButtonItem = backBarButton;
このコードをviewDidLoad
ViewController に追加します。
UIImage *image = [UIImage imageNamed: @"myIcon.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = CGRectMake(5, 2, 100, 39);
[self.navigationController.navigationBar addSubview:imageView];
imageView はインスタンス変数として宣言することもできるため、追加した後でアクセスできます (たとえば、ある時点で navigationBar からアイコンを削除したい場合)。
UIButton *homeBtn=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 46, 28)];
[homeBtn setBackgroundImage:[UIImage imageNamed:@"homeBtn.png"] forState:UIControlStateNormal];
[homeBtn addTarget:self action:@selector(homeBtnPressed) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *navHomeBtn=[[[UIBarButtonItem alloc] initWithCustomView:homeBtn] autorelease];
self.navigationItem.rightBarButtonItem=navHomeBtn;
[homeBtn release];