IOS UI進階03,iosui進階
導航控制器
1.導航控制器永遠顯示的是棧頂控制器的view
2.導航控制器中做介面之間的跳轉必須拿到導航控制器
3.調用pop方法並不會馬上銷毀當前控制器
4.popToViewController使用注意點,傳入進去的控制器必須是導航控制器棧裡面的控制器
5.導航條的內容由棧頂控制器決定,一個導航控制器只有一個導航條,因此只能由一個控制器決定,誰先顯示在最外面,誰就是棧頂控制器.
6.在iOS7之後,預設會把導航條上的按鈕的圖片渲染成藍色.
7.導航條上的子控制項位置不需要我們管理,只需要管理尺寸
8.UINavigationItem:是一個模型,決定導航條的內容(左邊內容,中間,右邊內容)
10.以後只要看到item,通常都是蘋果提供的模型,只要改模型就能修改蘋果的某些控制項.
1-控制器view的生命週期
3.在非ARC中viewDidUnload,經常用來清空介面上的資料
2-資料存放區1.plist儲存
1.plist儲存,產生一個plist檔案.
2.plist不是數組就是字典,plist儲存就是用來儲存字典或者數組.
注意:Plist不能儲存自訂對象
3.擷取應用沙箱中Caches檔案路徑
// directory:擷取哪個檔案夾 // domainMask:在哪個範圍內搜尋,NSUserDomainMask:表示在使用者的手機上尋找 // expandTilde:是否展開全路徑 YES:表示展開全路徑 NO:不會展開全路徑,會把應用沙箱的路徑用波浪號(~)代替 // 擷取到Caches檔案夾路徑 NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
4.讀取plist,之前是什麼類型儲存的,讀取也是什麼
2.喜好設定儲存
// 喜好設定儲存:NSUserDefaults // 以字典的形式進行喜好設定,用法跟字典. // 喜好設定好處: 1.不需要關心檔案名稱 // 2.快速進行索引值對儲存 // 3.直接儲存基礎資料型別 (Elementary Data Type)
@implementation ViewController
- (IBAction)save:(id)sender {
// 擷取單例
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// @"123" key:pwd
[defaults setObject:@"123" forKey:@"pwd"];
// bool
[defaults setBool:YES forKey:@"isOn"];
// int
[defaults setInteger:10 forKey:@"num"];
}
- (IBAction)read:(id)sender {
// 利用NSUserDefaults單例
NSString *pwd = [[NSUserDefaults standardUserDefaults] objectForKey:@"pwd"];
NSInteger i = [[NSUserDefaults standardUserDefaults] integerForKey:@"num"];
NSLog(@"%@--%ld",pwd,i);
}
3.歸檔
1.NSKeyedArchiver專門用來做自訂對象歸檔
// 什麼時候調用:當一個對象要歸檔的時候就會調用這個方法歸檔// 作用:告訴蘋果當前對象中哪些屬性需要歸檔- (void)encodeWithCoder:(NSCoder *)aCoder{ [aCoder encodeObject:_name forKey:@"name"]; [aCoder encodeInt:_age forKey:@"age"];}// 什麼時候調用:當一個對象要解檔的時候就會調用這個方法解檔// 作用:告訴蘋果當前對象中哪些屬性需要解檔// initWithCoder什麼時候調用:只要解析一個檔案的時候就會調用- (id)initWithCoder:(NSCoder *)aDecoder{ #warning [super initWithCoder] if (self = [super init]) { // 解檔 // 注意一定要記得給成員屬性賦值 _name = [aDecoder decodeObjectForKey:@"name"]; _age = [aDecoder decodeIntForKey:@"age"]; } return self;}