BestBuyアプリのように、または以下のスクリーンショットに示すように、カスタムナビゲーションバーを作成したいと思います。
このタイプのナビゲーションは、常にすべてのviewControllerの上部に配置する必要があります。
誰かが私に手順またはどんな種類の助けも教えてくれるなら、いただければ幸いです。ありがとう。
BestBuyアプリのように、または以下のスクリーンショットに示すように、カスタムナビゲーションバーを作成したいと思います。
このタイプのナビゲーションは、常にすべてのviewControllerの上部に配置する必要があります。
誰かが私に手順またはどんな種類の助けも教えてくれるなら、いただければ幸いです。ありがとう。
カスタム描画を行い、必要に応じてサブビューを追加する UINavigationBar のサブクラスを作成します。
次に、navigationController にそのクラスを使用するように指示します。initWithNavigationBarClass:toolBarClass:
例えば
@interface MyBar : UINavigationBar
@end
@implementation MyBar
.... //like any UIView
@end
UINavigationController *navi = [[UINavigationController alloc] initWithNavigationBarClass:[MyBar class] toolbarClass:nil];
それ以外のinitWithRootViewController
サンプル
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
self.mainViewController = [[FDMainViewController alloc] initWithNibName:@"FDMainViewController_iPhone" bundle:nil];
} else {
self.mainViewController = [[FDMainViewController alloc] initWithNibName:@"FDMainViewController_iPad" bundle:nil];
}
UINavigationController *navi = [[UINavigationController alloc] initWithNavigationBarClass:[UINavigationBar class] toolbarClass:nil];
navi.viewControllers = @[self.mainViewController];
self.window.rootViewController = navi;
[self.window makeKeyAndVisible];
return YES;
}
ナビゲーションバーは3つのビューを取得でき、左右に2つのボタンがあります。また、タイトルのビューを追加することもできます。
//this will set a background image to your navigation bar.
[[self.navigationController navigationBar] setBackgroundImage:[UIImage imageNamed:@"top-bar.png"] forBarMetrics:UIBarMetricsDefault];
UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
[leftButton setBackgroundImage:[UIImage imageNamed:@"backBtn.png"] forState:UIControlStateNormal];
leftButton.frame = CGRectMake(0, 0, 66, 30);
[leftButton addTarget:self action:@selector(navBack) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:leftButton];
UIImage *image=[UIImage imageNamed:@"add-btn.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.bounds = CGRectMake( 0, 0, image.size.width, image.size.height);
[button setBackgroundImage:image forState:UIControlStateNormal];
[button addTarget:self action:@selector(doneAct) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
検索バーを追加するには
self.navigationItem.titleView = mySearchbarView;