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 *- *FileNew →* 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 *-アプリケーションを実行すると、次の出力が得られます-

iOSチュートリアル

  • ステップ11 *-ナビゲーションボタンMyButtonをクリックすると、プッシュナビゲーションボタンの表示が切り替わります。
  • ステップ12 *-プッシュナビゲーションボタンをクリックすると、次のように別のView Controllerがプッシュされます。

iOSチュートリアル