UITableView点击一个项目打开一个新的屏幕/视图/活动

时间:2011-03-28 10:29:58

标签: ios objective-c uitableview

我有一个表视图(HomeViewController),包含以下项目:

  1. 地点

  2. 报告

  3. 设置

  4. 我将这些项目作为单独的文件(LocationViewController,ReportingView控制器和设置ViewController)。现在,如果用户点击位置,则应打开新的屏幕/活动/视图,并且对于其他项目应该相同。 可以请一些人帮忙。我的代码如下:

        #import "HomePageController.h"  @implementation HomePageController
        @synthesize menuList, table;
    // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
    
    - (void)viewDidLoad
     {
    
        menuList=[[NSMutableArray alloc] initWithObjects:
    
                  [NSArray arrayWithObjects:@"LOCATIONS",nil],
    
                  [NSArray arrayWithObjects:@"REPORTING",nil], 
    
                  [NSArray arrayWithObjects:@"SETTINGS",nil],
    
                  [NSArray arrayWithObjects:@"PASSWORD",nil],
    
                  [NSArray arrayWithObjects:@"HELP",nil],
    
                  [NSArray arrayWithObjects:@"ABOUT",nil],
    
                  [NSArray arrayWithObjects:@"SHARE",nil],
                  nil];
        [self.navigationController setNavigationBarHidden:NO];  
        self.navigationController.navigationBar.tintColor=[UIColor blackColor]; 
        self.navigationController.navigationBar.barStyle=UIBarStyleBlackTranslucent;    
        self.title=@"CoinRead";     
        [table reloadData];
        [super viewDidLoad];
    }
    
        - (NSInteger)numberOfSectionsInTableView:(UITableView *)theTableView{
        return 1;
    }
    
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
        return 40;
    }
    
    - (NSInteger)tableView:(UITableView *)theTableView numberOfRowsInSection:(NSInteger)section{
        return menuList.count;
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
        static NSString *CellIdentifier = @"CellIdentifier";
    
        UITableViewCell *cell = [table dequeueReusableCellWithIdentifier:CellIdentifier];
    
        if(cell == nil){
    
            cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero] autorelease];
        }
    
        cell.highlighted=NO;
    
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    
        NSArray *rowArray = [menuList objectAtIndex:indexPath.row];
    
        UILabel *nameLabel = [[[UILabel alloc] initWithFrame:CGRectMake(15, 8, 200, 20)]autorelease];
    
        nameLabel.text = [NSString stringWithFormat:@"%@",[rowArray objectAtIndex:0]];
    
        nameLabel.backgroundColor = [UIColor clearColor];
    
        nameLabel.shadowColor=[UIColor whiteColor];
    
        nameLabel.shadowOffset=CGSizeMake(0.0, 0.5);
    
        nameLabel.textColor = RGB(0,0,0);
    
        [nameLabel setFont:[UIFont boldSystemFontOfSize:16.0f]];
    
        [cell.contentView addSubview:nameLabel];
    
        return cell;
    }
    

1 个答案:

答案 0 :(得分:0)

实施以下UITableViewDelegate方法以获取选择事件

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath