代码笔记先选择城市,然后,跳转Tabbar

Posted 菜鸟and小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码笔记先选择城市,然后,跳转Tabbar相关的知识,希望对你有一定的参考价值。

一,效果图。

 

 

 

二,工程图。

三,代码。

ChooseCityViewController.h

复制代码
#import <UIKit/UIKit.h>

@interface ChooseCityViewController : UIViewController
<UITableViewDelegate,UITableViewDataSource>
{
    NSMutableArray * dataArray;
    UITableView * mTableView;
}

@end
复制代码

 

ChooseCityViewController.m

复制代码
#import "ChooseCityViewController.h"
#import "DetailViewController.h"


@interface ChooseCityViewController ()

@end

@implementation ChooseCityViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    //读取plist文件
    [self readPlistFile];
    //初始化tableView
    [self initTableView];
   
}
#pragma -mark -functions

-(void)readPlistFile
{
    dataArray = [[NSMutableArray alloc] initWithCapacity:0];
    NSString * path = [[NSBundle mainBundle] pathForResource:@"city" ofType:@"plist"];
    
    NSDictionary * dict = [[NSDictionary alloc] initWithContentsOfFile:path];
    NSEnumerator * enumerator = [dict keyEnumerator];
    NSString * key;
    while (key = [enumerator nextObject]) {
        NSDictionary * t = [dict objectForKey:key];
        
        [dataArray addObject:t];
    }
    NSLog(@"%@",dataArray);
}

-(void)initTableView
{
    mTableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
    mTableView.delegate = self;
    mTableView.dataSource = self;
    mTableView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
    [self.view addSubview:mTableView];

}
#pragma -UITableViewDelegate
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [dataArray count];
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString * ID = @"cellID";
    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:ID];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
    }
    NSDictionary *dict = [dataArray objectAtIndex:indexPath.row];
    cell.textLabel.text = [dict objectForKey:@"city_name"];
    return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSDictionary * dict = [dataArray objectAtIndex:indexPath.row];
    //把所选择的城市保存到本地
    [[NSUserDefaults standardUserDefaults] setObject:[dict objectForKey:@"city_id"] forKey:@"city_id"];
    [[NSUserDefaults standardUserDefaults] setObject:[dict objectForKey:@"city_name"] forKey:@"city_name"];
    
    //跳转到另一个有tabbar的页面
    DetailViewController *detail=[[DetailViewController alloc]init];
    [self.navigationController pushViewController:detail animated:NO];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
复制代码

 

 

 
 

以上是关于代码笔记先选择城市,然后,跳转Tabbar的主要内容,如果未能解决你的问题,请参考以下文章

先登录 在跳转到tabBar

iOS开发——代码生成TabBar与视图切换具体解释

前端Vue项目:旅游App-(18)TabBar:debug,非点击tabBar的路由跳转active显示问题

一步步实现一个城市选择器

路由跳转

前端Vue项目:旅游App-TabBar:点击active效果点击路由跳转