Ios-ui-elements-navigation-bar
提供:Dev Guides
iOS-ナビゲーションバー
ナビゲーションバーの使用
ナビゲーションバーには、ナビゲーションコントローラーのナビゲーションボタンが含まれています。ナビゲーションコントローラーは、プッシュおよびポップ可能なView Controllerのスタックです。 ナビゲーションバーのタイトルは、現在のView Controllerのタイトルです。
サンプルコードと手順
- ステップ1 *-ビューベースのアプリケーションを作成します。
ステップ2 *-次に、App *Delegate.h を選択し、次のようにNavigation Controllerのプロパティを追加します-
#import <UIKit/UIKit.h>
@class ViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController;
@property (strong, nonatomic) UINavigationController *navController;
@end
ステップ3 *- *AppDelegate.m ファイルの* application:didFinishLaunchingWithOptions:*メソッドを更新して、Navigation Controllerを割り当て、次のようにウィンドウのルートビューコントローラにします-
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:
[[UIScreen mainScreen] bounds]];
//Override point for customization after application launch.
self.viewController = [[ViewController alloc]
initWithNibName:@"ViewController" bundle:nil];
//Navigation controller init with ViewController as root
UINavigationController *navController = [[UINavigationController alloc]
initWithRootViewController:self.viewController];
self.window.rootViewController = navController;
[self.window makeKeyAndVisible];
return YES;
}
ステップ4 *- *File → New →* File … →Objective C Classを選択して新しいクラスファイル *TempViewController を追加し、サブクラスUIViewControllerでTempViewControllerとしてクラスに名前を付けます。
ステップ5 *-次のように *ViewController.h にUIButton navButon を追加します-
//ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
UIButton *navButton;
}
@end
ステップ6 *-メソッド *addNavigationBarItem を追加し、 viewDidLoad でメソッドを呼び出します。
- ステップ7 *-ナビゲーションアイテムアクションのメソッドを作成します。
- ステップ8 *-別のビューコントローラーTempViewControllerをプッシュする別のメソッドも作成する必要があります。
ステップ9 *-更新された *ViewController.m は次のとおりです-
//ViewController.m
#import "ViewController.h"
#import "TempViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self addNavigationBarButton];
//Do any additional setup after loading the view, typically from a nib
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
//Dispose of any resources that can be recreated.
}
-(IBAction)pushNewView:(id)sender {
TempViewController *tempVC =[[TempViewController alloc]
initWithNibName:@"TempViewController" bundle:nil];
[self.navigationController pushViewController:tempVC animated:YES];
}
-(IBAction)myButtonClicked:(id)sender {
//toggle hidden state for navButton
[navButton setHidden:!nav.hidden];
}
-(void)addNavigationBarButton {
UIBarButtonItem *myNavBtn = [[UIBarButtonItem alloc] initWithTitle:
@"MyButton" style:UIBarButtonItemStyleBordered target:
self action:@selector(myButtonClicked:)];
[self.navigationController.navigationBar setBarStyle:UIBarStyleBlack];
[self.navigationItem setRightBarButtonItem:myNavBtn];
//create a navigation push button that is initially hidden
navButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[navButton setFrame:CGRectMake(60, 50, 200, 40)];
[navButton setTitle:@"Push Navigation" forState:UIControlStateNormal];
[navButton addTarget:self action:@selector(pushNewView:)
forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:navButton];
[navButton setHidden:YES];
}
@end
- ステップ10 *-アプリケーションを実行すると、次の出力が得られます-
- ステップ11 *-ナビゲーションボタンMyButtonをクリックすると、プッシュナビゲーションボタンの表示が切り替わります。
- ステップ12 *-プッシュナビゲーションボタンをクリックすると、次のように別のView Controllerがプッシュされます。