iOS - 導航欄



導航欄的使用

導航欄包含導航控制器的導航按鈕,導航控制器是一個檢視控制器的堆疊,可以推入和彈出。導航欄上的標題是當前檢視控制器的標題。

示例程式碼和步驟

步驟 1 - 建立一個基於檢視的應用程式。

步驟 2 - 現在,選擇 App AppDelegate.h 並新增一個導航控制器的屬性,如下所示:

#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:方法,分配導航控制器並將其設為視窗的根檢視控制器,如下所示:

- (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 - 透過選擇檔案新建檔案...→Objective C 類,新增一個新的類檔案TempViewController,然後將類命名為TempViewController,子類為UIViewController。

步驟 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 Tutorial

步驟 11 - 點選導航按鈕MyButton,推送導航按鈕的可見性將切換。

步驟 12 - 點選推送導航按鈕,將推送另一個檢視控制器,如下所示。

iOS Tutorial
ios_ui_elements.htm
廣告
© . All rights reserved.