《iPad开发从入门到精通》——6.2节系统主界面

简介:

本节书摘来自异步社区《iPad开发从入门到精通》一书中的第6章,第6.2节系统主界面,作者 杨春泽,更多章节内容可以访问云栖社区“异步社区”公众号查看

6.2 系统主界面
iPad开发从入门到精通
本章实例的的源码保存在“:daima6Bus”,默认的系统主界面是线路查询视图,在线路查询视图CBus_LineView.xib顶部设置了一个查询表单,在下方列表显示系统内的公交线路。线路查询视图的UI界面如图6-1所示。


856b5058900330653d4b73a95d828cb574ea715b

6.2.1 线路查询视图
实现文件CBus_LineViewController.h的代码如下所示。

#import <UIKit/UIKit.h>
@interface CBus_LineViewController : UIViewController <UITableViewDelegate,  
UITableViewDataSource,UISearchDisplayDelegate, UISearchBarDelegate>{
  UITableView    *busLineTableView;
  NSMutableArray  *filteredListContent;
}
@property(nonatomic, retain) IBOutlet UITableView   *busLineTableView;
@property(nonatomic, retain) NSMutableArray *filteredListContent;
@end
文件CBus_LineViewController.m是文件CBus_LineViewController.h的实现,功能是载入设置的视图界面,显示一个搜索表单,并在表单下方列表显示30条公交线路信息,并且可以根据用户输入的搜索关键字来显示搜索结果。文件CBus_LineViewController.m的具体实现代码如下所示。

#import "CBus_LineViewController.h"
#import "CBus_LineDetailViewController.h"
#import "CDataContainer.h"

@implementation CBus_LineViewController

@synthesize busLineTableView,filteredListContent;

// 通过viewdidload的额外设置后加载视图
- (void)viewDidLoad {
  [super viewDidLoad];
  self.filteredListContent = [NSMutableArray arrayWithCapacity:[[CDataContainer Instance].lineNameArray count]];
}
#pragma mark -
#pragma mark View lifecycle
- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
  [self.busLineTableView reloadData];
  NSLog(@"-----Nav------%@",self.navigationController.viewControllers);
  NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
  NSInteger styleNum = [userDefault integerForKey:@"styleType"];
  switch (styleNum) {
    case 0:{
      [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
      self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
      self.searchDisplayController.searchBar.barStyle = UIBarStyleDefault;
      break;
    }
    case 1:{
      [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyle BlackOpaque;
      self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
      self.searchDisplayController.searchBar.barStyle = UIBarStyleBlackOpaque;
      break;
    }
  }
  [self.busLineTableView reloadData];
}

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
}
#pragma mark -
#pragma mark Table view data source
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
  return @"公交线路";
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
  return 30;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  // Return the number of sections
  return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  // 返回行数
  if(tableView == self.searchDisplayController.searchResultsTableView){
    return [filteredListContent count];
  }
  else {
    return [[CDataContainer Instance].lineNameArray count];
  }
}
// 自定义表格单元的外观
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  static NSString *CellIdentifier = @"Cell";  
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
  }  
  cell.selectionStyle = UITableViewCellSelectionStyleGray;
  // 配置单元…
  if (tableView == self.searchDisplayController.searchResultsTableView){
    [[CDataContainer Instance] GetLineStationFromTableSequence:
     [[CDataContainer Instance].lineNameArray indexOfObject:  
[filteredListContent objectAtIndex:indexPath.row]]];
    NSString *beginStr = [[CDataContainer Instance].stationNameArray objectAtIndex:
[[CDataContainer Instance] GetBusLineSequence ByIndex:0]-1];
    NSString *endStr = [[CDataContainer Instance].stationNameArray objectAtIndex:              [[CDataContainer Instance] GetBusLineSequence  
ByIndex:[[CDataContainer Instance].sequenceNumArray count]-1]-1];
    NSString *detailStr = [[NSString alloc] initWithFormat:@"%@-->%@",beginStr,endStr];
    cell.detailTextLabel.font = [UIFont systemFontOfSize:12];
    cell.detailTextLabel.text = detailStr;
    [detailStr release];
    cell.textLabel.text = [filteredListContent objectAtIndex:indexPath.row];
  }
  else{
    [[CDataContainer Instance] GetLineStationFromTableSequence:indexPath.row];
    NSString *beginStr = [[CDataContainer Instance].stationNameArray objectAtIndex:               [[CDataContainer Instance] GetBusLineSequence ByIndex:0]-1];
    NSString *endStr = [[CDataContainer Instance].stationNameArray objectAtIndex:
GetBusLineSequenceByIndex:[[CDataContainer Instance].sequenceNumArray count]-1]-1];      NSString *detailStr = [[NSString alloc] initWithFormat:@"%@-->%@",beginStr, endStr];
    cell.detailTextLabel.font = [UIFont systemFontOfSize:12];
    cell.detailTextLabel.text = detailStr;
    [detailStr release];

    cell.textLabel.text = [[CDataContainer Instance].lineNameArray objectAtIndex: indexPath.row];
  }

  cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
  cell.imageView.image = [UIImage imageNamed:@"bus_table_line.png"];

  return cell;
}
#pragma mark -
#pragma mark Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
  // 创造和推动另一个视图控制器
  CBus_LineDetailViewController *detailViewController = [[CBus_LineDetailViewController alloc] initWithNibName:@"CBus_LineDetailView" bundle:nil];
  // 选定的对象到新视图控制器
  if (tableView == self.searchDisplayController.searchResultsTableView){    
    detailViewController.currentLineName = [filteredListContent objectAtIndex: indexPath.row];
    detailViewController.currentLineIndex = [[CDataContainer Instance].lineName Array indexOfObject:[filteredListContent objectAtIndex:indexPath.row]];
  }
  else{
    detailViewController.currentLineName = [[CDataContainer Instance].lineName Array objectAtIndex:indexPath.row];
    detailViewController.currentLineIndex = indexPath.row;
  }
  [self.navigationController pushViewController:detailViewController animated:YES];
  [detailViewController release];
}
#pragma mark -
#pragma mark Content Filtering
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope{
  /*
   基于搜索文本和范围更新过滤阵列
   */
  // 清除过滤数组
  [self.filteredListContent removeAllObjects]; 

  /*
   主要搜索与列表类型相匹配的范围,其名字要匹配比赛查找的文字;添加与项目匹配的过滤阵列
   */
  for (int i = 0; i < [[CDataContainer Instance].lineNameArray count]; i++){
    NSString * searchInfo = [[CDataContainer Instance].lineNameArray objectAtIndex:i];
    NSComparisonResult result = [searchInfo compare:searchText       options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)
     range:NSMakeRange(0, [searchText length])];
    if (result == NSOrderedSame){
      [self.filteredListContent addObject:searchInfo];
    }
  }
}
#pragma mark -
#pragma mark UISearchDisplayController Delegate Methods
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReload TableForSearchString:(NSString *)searchString{
  [self filterContentForSearchText:searchString scope:
   [[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[self. searchDisplayController.searchBar selectedScopeButtonIndex]]];
// 重新加载返回的搜索结果
  return YES;
}
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReload TableForSearchScope:(NSInteger)searchOption{
  [self filterContentForSearchText:[self.searchDisplayController.searchBar text]scope:
   [[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:  
searchOption]];

  // Return YES to cause the search result table view to be reloaded
  return YES;
}
// Override to allow orientations other than the default portrait orientation
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrien tation{
  // Return YES for supported orientations
  return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (void)didReceiveMemoryWarning {
  // Releases the view if it doesn't have a superview
  [super didReceiveMemoryWarning];
  self.busLineTableView = nil;
}
- (void)viewDidUnload {
  [super viewDidUnload];
  // Release any retained subviews of the main view
  // e.g. self.myOutlet = nil;
}
- (void)dealloc {
  [busLineTableView release];
  [filteredListContent release];
  [super dealloc];
}
@end

执行效果如图6-2所示。


c95f3dfce4ef3384cad751f919583cb1cd640d11

6.2.2 线路详情模块
本模块的功能是显示某一条线路的详细信息,在上方显示线路名、票价、首班时间和末班时间,在下方列表显示各个站点。线路详情视图CBus_LineDetailView.xib的UI界面如图6-3所示。


47021e41ffe851fb890f2d4c4fafc3a4b9eacc03

实现文件 CBus_LineDetailViewController.h的代码如下所示。

#import <UIKit/UIKit.h>
enum ERunType{
  EUpLineType,
  EDownLineType,
  ENoneLineType
};
@interface CBus_LineDetailViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>{
  UITableView    *busLineDetailTableView;
  //当前查询线路的index
  NSInteger    currentLineIndex;
  NSString    *currentLineName;
  NSInteger    runType;
  NSMutableArray  *upLineArray;
  NSMutableArray  *downLineArray;

}
@property(nonatomic, retain) IBOutlet UITableView *busLineDetailTableView;
@property(nonatomic, retain)  NSString *currentLineName;
@property(nonatomic)      NSInteger currentLineIndex;
-(void)AddLineToFavorite;
@end
文件CBus_LineDetailViewController.m是CBus_LineDetailViewController.h的实现,功能是显示某条线路的详细信息,它不但列表显示了此线路中的各个站点,而且实现了收藏功能。文件CBus_LineDetailViewController.m的具体实现代码如下所示。

#import "CBus_LineDetailViewController.h"
#import "CBus_StationDetailViewController.h"
#import "CBus_LineDetailLineViewController.h"
#import "CDataContainer.h"
@implementation CBus_LineDetailViewController
@synthesize busLineDetailTableView,currentLineName;
@synthesize currentLineIndex;
// 载入界面
- (void)viewDidLoad {
  [super viewDidLoad];  
  self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBar ButtonSystemItem:UIBarButtonSystemItemAdd
                     target:self
  action:@selector(AddLineToFavorite)];
  [[CDataContainer Instance] GetLineStationFromTableSequence:currentLineIndex];
}
#pragma mark -
#pragma mark View lifecycle
- (void)viewWillAppear:(BOOL)animated{
  [super viewWillAppear:animated];
  [self.busLineDetailTableView reloadData];

  NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
  NSInteger styleNum = [userDefault integerForKey:@"styleType"];

  switch (styleNum) {
    case 0:{
      [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
      self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
      self.searchDisplayController.searchBar.barStyle = UIBarStyleDefault;
      break;
    }
    case 1:{
      [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyle BlackOpaque;
      self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
      self.searchDisplayController.searchBar.barStyle = UIBarStyleBlackOpaque;
      break;
    }
  }  
  [[CDataContainer Instance] GetLineStationFromTableSequence:currentLineIndex];
  [self.busLineDetailTableView reloadData];  
  NSLog(@"-----Nav----%@",self.navigationController.viewControllers);
 }
- (void)viewDidDisappear:(BOOL)animated {
  [super viewDidDisappear:animated];
}
-(void)AddLineToFavorite
{
  NSLog(@"-------addLineToFavorite---------%@---%d",currentLineName,currentLineIndex);
  for(NSString *lineName in [CDataContainer Instance].favoriteLineNameArray){
    if ([lineName isEqualToString:currentLineName]) {
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"收藏"
                               message:[NSString stringWithFormat:@"%@ 已收藏",currentLineName]delegate:selfcancel ButtonTitle:@"确定"otherButtonTitles:nil];
      [alert show];
      [alert release];

      return;
    }
  }  
  [[CDataContainer Instance] InsertFavoriteInfoToDatabase:0 
  AddName:currentLineName AddIndex:currentLineIndex
  AddNameEnd:nil
  AddIndexEnd:0];
  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"收藏" message:[NSString
      stringWithFormat:@"收藏 %@ 成功",currentLineName]delegate:selfcancel
    ButtonTitle:@"确定" otherButtonTitles:nil];
  [alert show];
  [alert release];
}

#pragma mark -
#pragma mark Table view data source
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
  return currentLineName;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
  return 30;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  // Return the number of sections
  return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  // 返回行数.
  return [[CDataContainer Instance].sequenceNumArray count];
}
//自定义表格单元的外观视图
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Cell";  
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
  }  
  cell.selectionStyle = UITableViewCellSelectionStyleGray;
  cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
  // 配置单元
  cell.textLabel.text = [[CDataContainer Instance].stationNameArray objectAtIndex: [[CDataContainer Instance] GetBusLineSequenceByIndex:indexPath.row]-1];
  cell.imageView.image = [UIImage imageNamed:@"bus_table_stat.png"];
  return cell;
}
#pragma mark -
#pragma mark Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  // 创造另一个视图控制器
  CBus_LineDetailLineViewController *detailViewController = [[CBus_LineDetailLine ViewController alloc] initWithNibName:@"CBus_LineDetailLineView" bundle:nil];
  detailViewController.currentStationName = [[CDataContainer Instance].stationNameArray objectAtIndex:[[CDataContainer Instance] GetBusLineSequenceByIndex:indexPath.row]-1];
  detailViewController.currentStationIndex = [[CDataContainer Instance].stationNameArray indexOfObject:detailViewController.currentStationName]+1;

  [self.navigationController pushViewController:detailViewController animated:YES];
  [detailViewController release];
}
-(void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{
}
// 显示默认线路的图片
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrien tation {
  // Return YES for supported orientations
  return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (void)didReceiveMemoryWarning {
  //如果没有视图则释放它
  [super didReceiveMemoryWarning];
  self.busLineDetailTableView = nil;
}
- (void)viewDidUnload {
  [super viewDidUnload];
  // 释放任何保留的主视图
  // e.g. self.myOutlet = nil;
}
- (void)dealloc {
  [busLineDetailTableView release];
  [super dealloc];
}
@end

执行效果如图6-4所示。


d924b3e9e00a17af947786383e089e852050c5f3

6.2.3 线路中某站详情
本模块的功能是显示某一条线路中某个站的详细信息,显示通过这个站的所有线路。此模块的视图CBus_LineDetailLineView.xib的UI界面如图6-5所示。


b100920746e39be6961155affde468d3fd5fce6c

实现文件 CBus_LineDetailLineViewController.h的代码如下所示。

#import <UIKit/UIKit.h>
@interface CBus_LineDetailLineViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>{
  UITableView     *busStationDetailView;  
  NSInteger      currentStationIndex;
  NSString      *currentStationName;
  NSInteger      beginStationIndex;
  NSString       *beginStationName;
  NSInteger      endStationIndex;
  NSString       *endStationName;
  BOOL         isStatToStat;
  NSMutableArray  *beginStationLineArray;
  NSMutableArray  *endStationLineArray;
  NSMutableArray  *StatToStatLineArray;
}
@property(nonatomic, retain) IBOutlet   UITableView  *busStationDetailView;
@property(nonatomic, retain)   NSString     *currentStationName;
@property(nonatomic)        NSInteger     currentStationIndex;
@property(nonatomic, retain)   NSString     *beginStationName;
@property(nonatomic)        NSInteger     beginStationIndex;
@property(nonatomic, retain)   NSString     *endStationName;
@property(nonatomic)        NSInteger     endStationIndex;
@property(nonatomic)        BOOL         isStatToStat;
@property(nonatomic, retain)   NSMutableArray  *beginStationLineArray;
@property(nonatomic, retain)   NSMutableArray  *endStationLineArray;
@property(nonatomic, retain)   NSMutableArray  *StatToStatLineArray;
- (BOOL)findTwoStationInOneLine;
- (BOOL)findTwoStationInTwoLine;

@end
文件CBus_LineDetailLineViewController.m是文件CBus_LineDetailLineViewController.h的实现,具体代码如下所示。

#import "CBus_LineDetailLineViewController.h"
#import "CBus_LineDetailViewController.h"
#import "CDataContainer.h"
@implementation CBus_LineDetailLineViewController
@synthesize busStationDetailView;
@synthesize currentStationName,currentStationIndex;
@synthesize beginStationName,beginStationIndex,endStationName,endStationIndex;
@synthesize isStatToStat;
@synthesize beginStationLineArray, endStationLineArray, StatToStatLineArray;
// 初始化视图
- (void)viewDidLoad{
  [super viewDidLoad];  
  self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBar ButtonSystemItem:UIBarButtonSystemItemAddtarget:self
action:@selector(AddStationToFavorite)];
  if (isStatToStat){
    NSLog(@"---------isStatToStat-------");
    [[CDataContainer Instance] GetStationLineFromTableSequence:beginStationIndex];
    beginStationLineArray = [NSMutableArray arrayWithArray:[CDataContainer   
Instance].stationLineArray];
    NSLog(@"---------beginStationLineArray-------%@",beginStationLineArray);
    [[CDataContainer Instance] GetStationLineFromTableSequence:endStationIndex];
    endStationLineArray = [NSMutableArray arrayWithArray:[CDataContainer   
Instance].stationLineArray];
    NSLog(@"---------endStationLineArray-------%@",endStationLineArray);
    if ([self findTwoStationInOneLine]){
      return;
    }
    else if([self findTwoStationInTwoLine]){
      return;
    }
  }
  else {
    NSLog(@"---------isStat-------");
    [[CDataContainer Instance] GetStationLineFromTableSequence:currentStationIndex];
  }
}
- (BOOL)findTwoStationInOneLine{
  NSLog(@"-------findTwoStationInOneLine------");
  if (StatToStatLineArray == nil){
    StatToStatLineArray = [[NSMutableArray alloc] init];
  }
  for (NSString *beginStationStr in beginStationLineArray){
    for(NSString *endStationStr in endStationLineArray){
      if ([beginStationStr isEqualToString:endStationStr]){
        [StatToStatLineArray addObject:beginStationStr];
        NSLog(@"-----------StatToStatLineArray--------%@",StatToStatLineArray);
      }
    }
  }
  if (StatToStatLineArray){
    return YES;
  }
  return NO;
}
- (BOOL)findTwoStationInTwoLine{
  return NO;
}

#pragma mark -
#pragma mark View lifecycle

- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
  [self.busStationDetailView reloadData];
  NSLog(@"-----Nav----%@",self.navigationController.viewControllers);
  NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
  NSInteger styleNum = [userDefault integerForKey:@"styleType"];  
  switch (styleNum){
    case 0:{
      [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
      self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
      self.searchDisplayController.searchBar.barStyle = UIBarStyleDefault;
      break;
    }
    case 1:{
      [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyle BlackOpaque;
      self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
      self.searchDisplayController.searchBar.barStyle = UIBarStyleBlackOpaque;
      break;
    }
  }
}
- (void)viewDidDisappear:(BOOL)animated {
  [super viewDidDisappear:animated];
}

-(void)AddStationToFavorite{
  NSLog(@"-----AddStationToFavorite-----%@----%d",currentStationName,currentStationIndex);  
  for(NSString *lineName in [CDataContainer Instance].favoriteStationNameArray){
    if ([lineName isEqualToString:currentStationName]){
  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"收藏" 
                   message:[NSString stringWithFormat:@"%@ 已收藏",currentStationName]
  delegate:self
  cancelButtonTitle:@"确定"
  otherButtonTitles:nil];
      [alert show];
      [alert release];
      return;
    }
  }
  [[CDataContainer Instance] InsertFavoriteInfoToDatabase:1 AddName:currentStation Name AddIndex:currentStationIndex AddNameEnd:nil AddIndexEnd:0];
  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"收藏"
          message:[NSString stringWithFormat:@"收藏 %@ 成功",current StationName]
delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];
  [alert show];
  [alert release];
}
#pragma mark -
#pragma mark Table view data source
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
  if (isStatToStat){
    return [[NSString alloc] initWithFormat:@"%@——>%@",beginStationName,endStationName];
  }
  else{
    return currentStationName;
  }  
  return nil;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
  return 30;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  // Return the number of sections
  return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  // Return the number of rows in the section
  if (isStatToStat){
    return [StatToStatLineArray count];
  }
  else{
    return [[CDataContainer Instance].stationLineArray count];
  }
  return 0;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  static NSString *CellIdentifier = @"Cell";
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  if (cell == nil){
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
  }  
  cell.selectionStyle = UITableViewCellSelectionStyleGray;
  cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

  if (isStatToStat){
    cell.textLabel.text = [[CDataContainer Instance].lineNameArray objectAtIndex:
                [[StatToStatLineArray objectAtIndex:indexPath.row] intValue]/2-1];
  }
  else{
    [[CDataContainer Instance] GetLineStationFromTableSequence:
    [[CDataContainer Instance].lineNameArray indexOfObject:[[CDataContainer Instance].lineNameArray objectAtIndex:[[CDataContainer Instance] GetBusStationLine ByIndex:indexPath.row]-1]]];
    NSString *beginStr = [[CDataContainer Instance].stationNameArray   
objectAtIndex:[[CDataContainer Instance] GetBusLineSequenceByIndex:0]-1];
    NSString *endStr = [[CDataContainer Instance].stationNameArray objectAtIndex:
              [[CDataContainer Instance] GetBusLineSequence ByIndex:[[CDataContainer Instance].sequenceNumArray count]-1]-1];  
    NSString *detailStr = [[NSString alloc] initWithFormat:@"%@-->%@",beginStr, endStr];
    cell.detailTextLabel.font = [UIFont systemFontOfSize:12];
    cell.detailTextLabel.text = detailStr;
    [detailStr release];
    cell.textLabel.text = [[CDataContainer Instance].lineNameArray objectAtIndex:
          [[CDataContainer Instance] GetBusStation LineByIndex:  
indexPath.row]-1];
  }
  cell.imageView.image = [UIImage imageNamed:@"bus_table_line.png"];
  return cell;
}
#pragma mark -
#pragma mark Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  // Navigation logic may go here. Create and push another view controller.
  CBus_LineDetailViewController *lineDetailViewController = [self.navigation  
Controller.viewControllers objectAtIndex:1];  
  lineDetailViewController.currentLineName = [[CDataContainer Instance].  
lineNameArray objectAtIndex:[[CDataContainer Instance] GetBusStationLineByIndex: indexPath.row]-1];
  lineDetailViewController.currentLineIndex = [[CDataContainer Instance]  
.lineNameArray indexOfObject:lineDetailViewController.currentLineName];
[self.navigationController popViewControllerAnimated:YES];
}

 // Override to allow orientations other than the default portrait orientation
 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrien tion {
 // Return YES for supported orientations
   return (interfaceOrientation == UIInterfaceOrientationPortrait);
 }

- (void)didReceiveMemoryWarning {
  // Releases the view if it doesn't have a superview
  [super didReceiveMemoryWarning];

  // Release any cached data, images, etc. that aren't in use
}
- (void)viewDidUnload {
  [super viewDidUnload];
  // Release any retained subviews of the main view.
  // e.g. self.myOutlet = nil;
}
- (void)dealloc {
  [busStationDetailView release];
  [super dealloc];
}
@end
相关文章
|
网络协议 Ubuntu 网络安全
【服务器】iPad远程服务器进行开发(下)
【服务器】iPad远程服务器进行开发(下)
418 0
|
移动开发 Ubuntu 网络协议
【服务器】iPad远程服务器进行开发(上)
【服务器】iPad远程服务器进行开发
268 0
|
Web App开发 前端开发 JavaScript
如何利用ipad随时随地开发代码
如何利用ipad随时随地开发代码
468 1
如何利用ipad随时随地开发代码
|
Android开发 iOS开发
Instagram CEO :“苹果 iPad 不咋受欢迎,不值得给开发个专属版本的 App”
Instagram CEO :“苹果 iPad 不咋受欢迎,不值得给开发个专属版本的 App”
114 0
Instagram CEO :“苹果 iPad 不咋受欢迎,不值得给开发个专属版本的 App”
|
数据安全/隐私保护 iOS开发
iOS开发UI篇—模仿ipad版QQ空间登录界面
iOS开发UI篇—模仿ipad版QQ空间登录界面 一、实现和步骤 1.一般ipad项目在命名的时候可以加一个HD,标明为高清版 2.设置项目的文件结构,分为home和login两个部分    3.
664 0
|
iOS开发
iOS开发UI篇—iPad开发中得modal介绍
iOS开发UI篇—iPad开发中得modal介绍 一、简单介绍   说明1:   在iPhone开发中,Modal是一种常见的切换控制器的方式     默认是从屏幕底部往上弹出,直到完全盖住后面的内容为止 说明2:   在iPad开发中,Modal的使用频率也是非常高的   对...
780 0
|
API iOS开发 编解码
iOS开发UI篇—iPad和iPhone开发的比较
iOS开发UI篇—iPad和iPhone开发的比较 一、iPad简介 1.什么是iPad   一款苹果公司于2010年发布的平板电脑   定位介于苹果的智能手机iPhone和笔记本电脑产品之间   跟iPhone一样,搭载的是iOS操作系统    2.
1047 0