- iOS 教程
- iOS - 首頁
- iOS - 開始
- iOS - 環境設定
- iOS - Objective-C 基礎
- iOS - 第一個 iPhone 應用
- iOS - 動作和出口
- iOS - 代理
- iOS - UI 元素
- iOS - 加速計
- iOS - 通用應用程式
- iOS - 相機管理
- iOS - 位置處理
- iOS - SQLite 資料庫
- iOS - 傳送郵件
- iOS - 音訊和影片
- iOS - 檔案處理
- iOS - 訪問地圖
- iOS - 應用內購買
- iOS - iAd 整合
- iOS - GameKit
- iOS - 故事板
- iOS - 自動佈局
- iOS - Twitter 和 Facebook
- iOS - 記憶體管理
- iOS - 應用除錯
- iOS 有用資源
- iOS - 快速指南
- iOS - 有用資源
- iOS - 討論
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 - 當我們執行應用程式時,我們將得到以下輸出:
步驟 11 - 點選導航按鈕MyButton,推送導航按鈕的可見性將切換。
步驟 12 - 點選推送導航按鈕,將推送另一個檢視控制器,如下所示。
ios_ui_elements.htm
廣告