iOS進階控制項之tableViewController-城市列表

來源:互聯網
上載者:User

標籤:

今天我們要做的是一個城市資訊的展示,先給大家看看是怎樣的一個效果,我想應該是絕對的實用^_^

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

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

首先,建立一個新的工程,然後將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中定義,寶寶這邊就不重複說了,所以大家懂的。記得import標頭檔

接著我們來寫citiestableviewcontroller.m,其實很簡單,把其他沒用的都刪除,我們只要2個效果,一個是返回多少行,另一個是在返回的這些行裡面顯示什麼內容。代碼幾乎是和之前一樣一樣的。

//返回的行數- (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一定能夠在學習之路上對您有所協助^_^

寫有態度的部落格,做有情懷的人!

iOS進階控制項之tableViewController-城市列表

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.