IOS多視圖控制器及數(shù)據(jù)存儲

? ? ? 小白一枚,接觸IOS也有一段時間了.如今就UI這里,簡單的談一談兩個多視圖控制器和數(shù)據(jù)儲存的學(xué)習(xí)心得.首先了解到UIPickerView這個新的控件,它就是平常app上面勾選日期省市的那種控件.它和tableView一樣也有數(shù)據(jù)源和代理方法.可以在頭文件中進行查找.數(shù)據(jù)源方法中有兩個必須設(shè)置的

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;和

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;

其實它和tableView跟collectionView差不多的.了解方法后只需要設(shè)置相應(yīng)的要求就行.然后是UIApplication,獲取當(dāng)前App對象的單例設(shè)計模式,在平常App中比較高大上的跳轉(zhuǎn)頁面,打電話等功能其實只需要

- (BOOL)openURL:(NSURL*)url


這個簡單的方法就可以實現(xiàn).之后學(xué)習(xí)了UINavigationController和UITabBarController這兩個多視圖控制器,他們可以管理多個控制器.UINavigationController導(dǎo)航控制器,主要管理有層級關(guān)系的控制器,繼承自UIViewController,最少要有一個被管理的控制器作為根控制器.UINavigationController基本使用有 ??

?1:跳轉(zhuǎn)下一個控制器pushViewController:[下一個控制器] animated:YES促煮; ? ? ? ? ? ?

?2:返回上一個控制器 poptoViewController:[上一個控制]animated:YES若未;? ? ? ? ? ? ? ?

?3:返回根控制器 poptoRootViewControllerAnimated:YES.


它的導(dǎo)航欄設(shè)置由棧頂控制器的navigationItem屬性決定.在navigationItem中設(shè)置的左按鈕、右按鈕,標(biāo)題等會隨著控制器的顯示,也顯示到navigationBar上.

? ? ? UITabBarController顯示出的效果就是平常微信中使用的界面,需要設(shè)置子控制器,讓后將子控制器添加到UITabBarController上面.它下方的工具條稱為UITabBar,如果UITabBarController有多個子控制器,那么UITabBar上就會有同樣個數(shù)的子控件與之相對應(yīng),他們在UITabBar的位置是系統(tǒng)自動跟你均分的, UITabBar的高度為49,因為下方多一個label,所以高度在44的基礎(chǔ)上增加了5.有兩種方式可以往UITabBarController中添加子控制器[tab addChildViewController:red];? 和tab.viewControllers = @[red,blue];? (tab表示創(chuàng)建的tabBar控制器,red和blue表示創(chuàng)建的子控制器).



? ? ? 在iOS 7.0之后出現(xiàn)了圖片的渲染效果UIImageRenderingModeAutomatic(根據(jù)圖片的使用環(huán)境和所處的繪圖上下文自動調(diào)整渲染模式) UIImageRenderingModeAlwaysOriginal(始終繪制圖片原始狀態(tài),不使用Tint Color)r如果想要改變tabBar下的字體顏色,需要使用tintColor這個屬性來對字體進行渲染,用取色器讀取你想要改變的顏色.

? ? ? 之后了解了數(shù)據(jù)存儲的幾種方式,

第一種writeTofile首先獲取你需要存入的路徑,并且拼接好對應(yīng)的文件名以及格式 NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]stringByAppendingPathComponent:@"data.plist”;之后把數(shù)據(jù)寫入數(shù)組中,再用- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;這個方法把數(shù)據(jù)存入到文件中讀取數(shù)據(jù)也是先獲取相應(yīng)路徑,之后用+ (nullable NSArray*)arrayWithContentsOfFile:(NSString *)path;方法讀取出數(shù)據(jù).

第二種是偏好設(shè)置,它不需要獲取路徑NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];(獲取系統(tǒng)的偏好設(shè)置對象,standard share 一般都是單例)[defaults setObject:@"小明" forKey:@"name”];(存儲數(shù)據(jù))同時它需要立即同步,防止數(shù)據(jù)丟失[defaults synchronize];它的讀取也是先獲取偏好設(shè)置的路徑,之后用NSUserDefaults的方法讀取數(shù)據(jù).

第三種也是我個人覺得比較復(fù)雜的方式—歸檔(因為個人感覺有點難,所以代碼就貼的詳細(xì)點).首先它也是先獲取文件路徑

NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"data.plist"];? 之后創(chuàng)建一個對象CZPserson *p = [[Pserson alloc]init];寫入數(shù)據(jù)p.name = @"小明”;

存儲歸檔 注意1.該對象必須遵守NSCoding 協(xié)議 編碼協(xié)議@interface Pserson : NSObject

2.實現(xiàn)encodeWithCoder方法- (void)encodeWithCoder:(NSCoder *)aCoder{[aCoder encodeObject:self.name forKey:@"name”];}

3.實現(xiàn)initWIthCoder方法- (instancetype)initWithCoder:(NSCoder *)aDecoder

{

? ? ? ?if (self = [super init]) {

? ? ? ?self.name = [aDecoder decodeObjectForKey:@"name"];

}

? ? ? return self;?

}

以上就是我所學(xué)習(xí)到的內(nèi)容,感覺自己掌握的還不是很牢固,但是勤能補拙,我相信多加練習(xí)一定可以熟練的掌握.貼上這篇文章記錄我的編程學(xué)習(xí)之旅.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末剑鞍,一起剝皮案震驚了整個濱河市姻檀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌提针,老刑警劉巖命爬,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異辐脖,居然都是意外死亡饲宛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門嗜价,熙熙樓的掌柜王于貴愁眉苦臉地迎上來艇抠,“玉大人,你說我怎么就攤上這事久锥〖矣伲” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵瑟由,是天一觀的道長絮重。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么青伤? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任督怜,我火速辦了婚禮,結(jié)果婚禮上狠角,老公的妹妹穿的比我還像新娘号杠。我一直安慰自己,他們只是感情好丰歌,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布姨蟋。 她就那樣靜靜地躺著,像睡著了一般立帖。 火紅的嫁衣襯著肌膚如雪眼溶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天厘惦,我揣著相機與錄音偷仿,去河邊找鬼。 笑死宵蕉,一個胖子當(dāng)著我的面吹牛酝静,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播羡玛,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼别智,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了稼稿?” 一聲冷哼從身側(cè)響起薄榛,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎让歼,沒想到半個月后敞恋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡谋右,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年硬猫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片改执。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡啸蜜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辈挂,到底是詐尸還是另有隱情衬横,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布终蒂,位于F島的核電站蜂林,受9級特大地震影響遥诉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜噪叙,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一突那、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧构眯,春花似錦、人聲如沸早龟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽葱弟。三九已至壹店,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芝加,已是汗流浹背硅卢。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留藏杖,地道東北人将塑。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蝌麸,于是被迫代替她去往敵國和親点寥。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容