自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iOS學(xué)習(xí)之UINavigationController詳解與使用(一)

移動(dòng)開發(fā) iOS
本文詳細(xì)介紹了iOS學(xué)習(xí)之中的UINavigationController詳解與使用,以及添加UIBarButtonItem的方法,希望對(duì)大家的iOS開發(fā)學(xué)習(xí)有所幫助。

UINavigationController可以翻譯為導(dǎo)航控制器,在iOS里經(jīng)常用到。

1、UINavigationController導(dǎo)航控制器如何使用

我們看看它的如何使用:

下 面的圖顯示了導(dǎo)航控制器的流程。最左側(cè)是根視圖,當(dāng)用戶點(diǎn)擊其中的General項(xiàng)時(shí) ,General視圖會(huì)滑入屏幕;當(dāng)用戶繼續(xù)點(diǎn)擊Auto-Lock項(xiàng)時(shí),Auto-Lock視圖將滑入屏幕。相應(yīng)地,在對(duì)象管理上,導(dǎo)航控制器使用了導(dǎo) 航堆棧。根視圖控制器在堆棧最底層,接下來入棧的是General視圖控制器和Auto-Lock視圖控制器??梢哉{(diào)用 pushViewControllerAnimated:方法將視圖控制器推入棧頂,也可以調(diào)用popViewControllerAnimated:方 法將視圖控制器彈出堆棧。

上圖來自蘋果官網(wǎng)。

2、UINavigationController的結(jié)構(gòu)組成

看下圖,UINavigationController有Navigation bar  ,Navigation View ,Navigation toobar等組成。

現(xiàn)在我們建立一個(gè)例子,看看如何使用UINavigationController

3、新建一個(gè)項(xiàng)目

命名為UINavigationControllerDemo,為了更好理解UINavigationController,我們選擇Empty Application模板

4、創(chuàng)建一個(gè)View Controller,命名為RootViewController:依次選擇File——New——New File,默認(rèn)勾上With XIB for user interface.

選擇正確位置創(chuàng)建完成,這時(shí)項(xiàng)目里多了三個(gè)文件,分別是RootViewController.h RootViewController.m RootViewController.xib文件。

打開RootViewController.xib,添加一個(gè)按鈕控件,按鈕Button改成 :Goto SecondView,為跳轉(zhuǎn)做準(zhǔn)備

5、打開AppDelegate.h,向其中添加屬性:

  1. @property (strong, nonatomic) UINavigationController *navController;   

添加后AppDelegate.h文件代碼如下:

  1. #import <UIKit/UIKit.h>   
  2. @class ViewController;   
  3. @interface AppDelegate : UIResponder <UIApplicationDelegate>   
  4. @property (strong, nonatomic) UIWindow *window;   
  5. @property (strong, nonatomic) ViewController *viewController;   
  6. @property (strong, nonatomic) UINavigationController *navController;   
  7. @end   

6、在AppDelegate.m 文件的didFinishLaunchingWithOptions方法中創(chuàng)建添加navController,RootViewController視圖。

  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions   
  2. {   
  3.     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];   
  4.     RootViewController *rootView = [[RootViewController alloc] init];   
  5.     rootView.title = @"Root View";   
  6.     self.navController = [[UINavigationController alloc] init];   
  7.     [self.navController pushViewController:rootView animated:YES];   
  8.     [self.window addSubview:self.navController.view];   
  9.     [self.window makeKeyAndVisible];   
  10.     return YES;   
  11. }   

給rootView的titie命名為 Root View,好識(shí)別View直接的切換關(guān)系。用pushViewController把rootView加入到navController的視圖棧中。

7、現(xiàn)在Root視圖添加完成

看看效果:

現(xiàn)在還沒有Navigation bar 。只有title。

8、添加UIBarButtonItem

bar ButtonItem分左右UIBarButtonItem。我們把左右的都添加上去。

在RootViewController.m中添加代碼如下:

  1. - (void)viewDidLoad   
  2. {   
  3.     [super viewDidLoad];   
  4.     UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(selectLeftAction:)];   
  5.     self.navigationItem.leftBarButtonItem = leftButton;   
  6.     UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd  target:self action:@selector(selectRightAction:)];   
  7.     self.navigationItem.rightBarButtonItem = rightButton;<p class="p1">}</p>   

這樣添加了UIBarButtonItem了,效果如下:

這里重點(diǎn)介紹下

UIBarButtonItem *leftButton = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemActiontarget:selfaction:@selector(selectLeftAction:)];

UIBarButtonSystemItemAction的風(fēng)格,這是系統(tǒng)自帶的按鈕風(fēng)格,看下圖,你不用一個(gè)個(gè)試驗(yàn),你也知道想用那個(gè)item,如下圖:

9、響應(yīng)UIBarButtonItem的事件的實(shí)現(xiàn)

我們?cè)?nbsp;action:@selector(selectLeftAction:);

action添加了selectLeftAction和selectRightAction

在RootViewController.m文件中添加代碼實(shí)現(xiàn):

  1. -(void)selectLeftAction:(id)sender   
  2. {   
  3.     UIAlertView *alter = [[UIAlertView alloc] initWithTitle:@"提示" message:@"你點(diǎn)擊了導(dǎo)航欄左按鈕" delegate:self  cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];   
  4.     [alter show];   
  5. }   
  6. -(void)selectRightAction:(id)sender   
  7. {   
  8.     UIAlertView *alter = [[UIAlertView alloc] initWithTitle:@"提示" message:@"你點(diǎn)擊了導(dǎo)航欄右按鈕" delegate:self  cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];   
  9.     [alter show];   

這樣在點(diǎn)擊左右的UIBarButtonItem時(shí),彈出提示:

這篇先講添加UIBarButtonItem,下篇講解頁面跳轉(zhuǎn)和添加UISegmentedControl

下篇:iOS學(xué)習(xí)之UINavigationController詳解與使用(二)頁面切換和segmentedController

下篇:iOS學(xué)習(xí)UINavigationController詳解與使用(三)ToolBar

例子代碼:https://github.com/schelling/YcDemo

著作權(quán)聲明:本文由http://blog.csdn.net/totogo2010/原創(chuàng),歡迎轉(zhuǎn)載分享。請(qǐng)尊重作者勞動(dòng),轉(zhuǎn)載時(shí)保留該聲明和作者博客鏈接,謝謝
責(zé)任編輯:閆佳明 來源: csdn
相關(guān)推薦

2013-04-02 10:36:43

iOS學(xué)習(xí)UINavigatioToolBar

2013-04-02 10:16:34

iOS學(xué)習(xí)UINavigatio頁面切換

2011-08-02 11:07:42

iOS開發(fā) UIWebView

2015-07-09 13:47:37

IOSFMDB

2011-07-26 17:31:52

iOS 設(shè)計(jì)模式

2011-08-16 14:59:31

IOS開發(fā)ViewDidUnloiOS 5

2011-08-23 13:56:12

MySQLConnection

2019-01-04 15:14:18

2019-02-12 15:04:09

2011-08-02 11:17:13

iOS開發(fā) View

2011-08-03 17:32:17

IOS UIScrollVi touch

2021-08-25 07:43:17

AndroidSurfaceViewTextureView

2011-08-16 16:10:12

MySQLORDER BY子句GROUP BY子句

2011-08-16 15:35:50

MySQLSELECT語句FROM子句

2010-08-12 13:21:31

華為3COMIOS

2022-04-27 08:17:07

OCMock單元測(cè)試集成

2012-05-10 08:55:11

Linuxuniq

2023-09-27 09:18:35

2010-07-06 10:56:32

UML圖詳解

2011-07-18 14:39:53

iPhone SDK UIKit
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)