你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS高級控件之tableViewController-城市列表分析

iOS高級控件之tableViewController-城市列表分析

編輯:IOS開發綜合

今天我們要做的是一個城市信息的展示,先給大家看看是怎樣的一個效果,我想應該是絕對的實用^_^
這裡寫圖片描述

好了,接下來我就簡要的給大家講講步驟,因為技術博客寫的真心不多,也不知道該怎樣講才能把每一個人都看懂,但是寶寶我本著寫有態度的博客,盡量的將細節描述詳盡,不對的地方,望指正。

哈哈 雖然感覺並沒有多少人看,我想我應該是自己的忠實的粉絲^_^好了不說廢話了,進入正題

首先,建立一個新的工程,然後將storyboard中的viewController刪除,同時將左側viewController.h和.m一並刪除,因為這是一個專有控件的demo,所以避免出現一系列繁雜的代碼^_^

同時新建oc的類MainTableViewController,記住要繼承至UITableViewController,同時再新建一個CitiesTableViewController用於存儲顯示城市的信息。

再storyboard中將Table View Controller拖進項目,並將Table View Controller的class設置成為MainTableViewController,這樣這個類和這個Table view controller就相關聯了。接著記得把這個選上,這就是手機在運行時,第一個顯示的畫面,相當於初始化,否則就是黑屏的。
這裡寫圖片描述
同時將之前對provinces和cities的plist全部都拉進項目,這裡就不贅述了。

定義一下,同時在初始化數據,這些都是老套路

//省份數組
@property (strong,nonatomic)NSArray *provinces;
//城市字典
@property (strong,nonatomic)NSDictionary *cities;
- (void)viewDidLoad {
[super viewDidLoad];    
//初始化數據
NSBundle *bundle = [NSBundle mainBundle];
self.provinces = [NSArray arrayWithContentsOfFile:[bundle pathForResource:@"provinces" ofType:@"plist"]];
self.cities = [NSDictionary dictionaryWithContentsOfFile:[bundle pathForResource:@"cities" ofType:@"plist"]];

}

接著就是設置數據源

#pragma mark 指定section分組的數據行數
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    return self.provinces.count;
}

然後我們要設置cell中顯示什麼內容

#pragma mark 指定表格顯示內容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

 static NSString *CellIdentifier = @"myCell";
 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

// 如果沒有在緩存池找到單元格,實例化一個新的單元格
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure the cell...
[cell.textLabel setText:self.provinces[indexPath.row]];

return cell;
}

然後我們要知道,當我們點擊了哪一行,然後通過這個信息在城市字典中將省份的數組取出,這裡要做連線准備,同時我們要在storyboard中新建一個tableviewcontroller,並把class和citiestableviewcontroller關聯起來。

這裡寫圖片描述

對了,這個setCities方法是要在citiestableviewcontroller中定義,寶寶這邊就不重復說了,所以大家懂的。記得impZ喎?/kf/ware/vc/" target="_blank" class="keylink">vcnTNt87EvP48L3A+DQo8cD6909fFztLDx8C00LRjaXRpZXN0YWJsZXZpZXdjb250cm9sbGVyLm2jrMbkyrW63LzytaWjrLDRxuTL+8O708O1xLa8yb6z/aOsztLDx9a70qoyuPbQp7n7o6zSu7j2yse3tbvYtuDJ2dDQo6zB7dK7uPbKx9Tat7W72LXE1eLQqdDQwO/D5s/Uyr7KssO0xNrI3aGjtPrC67y4uvXKx7rN1q7HsNK70fnSu9H5tcShozwvcD4NCjxwcmUgY2xhc3M9"brush:java;"> //返回的行數 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.cities.count; }

這裡寫圖片描述
大家肯定對上面的@”myCity”和之前的@”myCell”產生疑惑,這是哪來的,這其實也是一個細節,我們打開storyboard,在tableviewcontroller下面有一個table view,再下面有一個cell,這裡將cell標記一個標簽的作用,也就相當於起名字一樣的道理。

僅僅這樣肯定是不行的,這樣會遇到一個很尴尬的場面,那就是點擊進入了某個省,結果無法返回了,哈哈

這時候就需要另一個控件,Navigation Controller,將其拖入storyboard中,並將與之伴隨多viewcontroller刪除,在屬性中將啟動項 Is initial view controller打勾,這時原來在省份tableviewcontroller前面的肩頭就跑到了Navigation Controller
這裡寫圖片描述
同時將Navigation Controller與MaintableviewController連接起來,這裡就不贅述了,給大家個提示大家自己去完成吧 很簡單,只要是root view controller,同時省份與城市之間的連接,選擇Accessory action事件下面的push,這樣在城市列表中仍然會出現
Navigation Controller

這裡寫圖片描述

其他的一些美化和命名的操作就不再介紹,相信這個demo一定能夠在學習之路上對您有所幫助^_^

寫有態度的博客,做有情懷的人!

   
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved