国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS App開發中導航欄的創建及基本屬性的教程

2020-02-19 15:50:42
字體:
來源:轉載
供稿:網友

導航條作為iOS開發的一種控件,其實是非常重要的,它可以實現各種效果,如隱藏、透明、導航欄動畫等,下面是iOS App開發中導航欄的創建及基本屬性的教程,跟著武林技術頻道小編帶你來了解一下吧!

文件目錄如下:基本導航順序: root -> First -> Second -> Third。其中,FirstViewController作為 navigation堆棧的rootview

201622690834116.jpg (229×371)

1、創建navigation

如果是想直接把navigation導航作為項目一開始的跟視圖,把RootViewController.h文件里的nav屬性放到AppDelegate.h里即可,再把RootViewController.m文件里的action的代碼復制到 AppDelegate.m里的didFinishLaunchingWithOptions 方法里,最后把 self.window.rootViewController 設置 UINavigationController類型的屬性nav即可

在RootViewController.h文件

?

#import <UIKit/UIKit.h>
@class FirstViewController;

?

@interface RootViewController : UIViewController

@property (strong, nonatomic) UINavigationController *nav;

- (IBAction)btnClick:(UIButton *)sender;

@end


在RootViewController.m 文件里的隨意一個自定義action里:

?

?

?


- (IBAction)btnClick:(UIButton *)sender {
???
??? //創建一個viewcontroller
??? FirstViewController *fristview =[[[FirstViewController alloc] init] autorelease];
??
???
??? //初始化UINavigationController(方式一)
??? self.nav = [[[UINavigationController alloc] initWithRootViewController:fristview] autorelease];
???
???
??? //初始化UINavigationController(方式二)
? //? self.nav = [[[UINavigationController alloc] init] autorelease];
? //? [self.nav pushViewController:fristview animated:YES];

?

???
??? //初始化UINavigationController(方式三,失敗,xib文件加載失敗,原因暫時不明)
?? // self.nav = [[[UINavigationController alloc] initWithNibName:@"FirstViewController" bundle:nil] autorelease];
???
???
??? //跳轉到FirstView頁面
??? [self presentViewController:self.nav animated:YES completion:nil];
???
???
??? //這種寫法一般用于往view里添加一些小控件,如button? label textField之類的,不適宜用于頁面跳轉
??? // [self.view addSubview:self.nav.view];
???
???
}

?

2.navigation的常用屬性設置例子
我們的navigation就加載上去了以后,下面我們來設置navigation的屬性:

?

- (void)viewDidLoad?
{?
??? [super viewDidLoad];?
??? // Do any additional setup after loading the view.?
??? [self.navigationController.navigationBar setTranslucent:NO];//設置navigationbar的半透明?
??? self.title = @"navigationcontroller";//設置navigationbar上顯示的標題?
??? [self.navigationController.navigationBar setBarTintColor:[UIColor purpleColor]];//設置navigationbar的顏色?
??? self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonItemStyleDone target:self action:Nil];//設置navigationbar左邊按鈕?
??? self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonItemStylePlain target:self action:Nil];//設置navigationbar右邊按鈕?
??? [self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];//設置navigationbar上左右按鈕字體顏色?
}?


效果圖如下:

?

?

?

201622690858466.png (321×128)

這里還有一個屬性常用,就是:

?

?

?

NSArray *arr = [NSArray arrayWithObjects:@"1",@"2", nil nil];?
??? UISegmentedControl *segment = [[UISegmentedControl alloc]initWithItems:arr];?
??? self.navigationItem.titleView = segment;//設置navigation上的titleview?

?

?

效果如下:

201622690937588.png (317×112)

對,我們看到中間的字變成了兩個可選的按鈕,這就是navigation的另一個屬性:navigationitem.titleview。

下面我們再建立一個視圖,看一下兩個視圖之前是怎樣通信的。

在第二個視圖中,我添加了一個button來顯示,并加了一個成員變量來接收從第一個視圖中穿過來的值:
?

?

@interface SecondViewController : UIViewController?
@property (copy,nonatomic) NSString *str;?
@end?
?

?

?

?


- (void)viewDidLoad?
{?
??? [super viewDidLoad];?
??? // Do any additional setup after loading the view.?
??? self.title = @"second";?
??? UIButton *aBUTTON = [[UIButton alloc]initWithFrame:CGRectMake(30, 30, 50, 30)];?
??? [aBUTTON setTitle:_str forState:UIControlStateNormal];?
??? [aBUTTON addTarget:self action:@selector(clicked) forControlEvents:UIControlEventTouchUpInside];?
??? [self.view addSubview:aBUTTON];?
}?


然后我將第一個視圖的右邊按鈕添加一個事件,點擊按鈕,就會推出第二個視圖,并顯示我們傳過來的值:
?

?

?

?


- (void)clicked{?
??? SecondViewController *second = [[SecondViewController alloc]init];?
??? [self.navigationController pushViewController:second animated:YES];?
??? second.str = @"hello!!";?
??? [second release];?
}?


下面,我們來運行一下:

?

?

?

201622691003542.png (316×162)

點進按鈕以后,我們的第二個視圖推出,button顯示了傳過來的值。

然后我們點擊回button,還有navigation另外一個方法:

?

- (void)clicked{?
??? [self.navigationController popViewControllerAnimated:YES];?
}?


這樣就可以回到第一個視圖。
以上代碼都是武林技術頻道小編為大家搜集的關于iOS App開發中導航欄的創建及基本屬性的教程,希望對大家的學習有一定的幫助!

?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安义县| 宝应县| 汉寿县| 巴彦县| 中西区| 松溪县| 沅陵县| 广宁县| 呼伦贝尔市| 横峰县| 全州县| 灌阳县| 思茅市| 洪雅县| 永修县| 临洮县| 竹北市| 林西县| 临城县| 富平县| 措美县| 永吉县| 武城县| 北海市| 绿春县| 玉龙| 蓝田县| 贵南县| 乌兰县| 大石桥市| 德格县| 三门县| 禹州市| 蓬溪县| 昌邑市| 林州市| 西乌珠穆沁旗| 凉城县| 莱芜市| 西充县| 东方市|