1

我对如何实现简单的基于 uitableview 的菜单有点困惑。像 Kayak 应用程序http://www.sendspace.com/file/igv31p 我的故事板看起来像这样:导航控制器 ---> 主视图控制器 -->详细视图控制器。在主视图控制器中,我有一个表格视图。我用 4 个单元格动态填充它,它们是产品、商店、包裹和财务。我要做的就是显示将成为子 uiviewcontroller 的子 uiviewcontroller。像这样:产品 --> 具有特定功能的 UiViewController 商店 --> 具有特定功能的其他 UIViewControlelr ...等等。

我创建了 didselectrowatindex 方法并尝试使用 pushViewController 做一些事情,就像下面方法的代码一样,但它不起作用。

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

[tableView deselectRowAtIndexPath:indexPath animated:YES];
StoresViewController *storeView = [[StoresViewController alloc]init];
switch (indexPath.section) {
    case 0:
        switch (indexPath.row) {
            case 0:
            {

            NSLog(@"Products");

            }
                break;
            case 1:{

                [self.navigationController pushViewController:storeView animated:YES];
                NSLog(@"Stores");

            }
                break;
            case 2:{
                NSLog(@"Packages");
            }
                break;
            case 3:{
                NSLog(@"Finances");

            }
                break;
        }
        break;

    default:
        break;
}

如果有人可以帮助我理解它,我将不胜感激。如果之前有人问过这个问题,请告诉我在哪里:) 提前致谢

类似于 Kayak 应用程序 http://www.sendspace.com/file/igv31p

4

2 回答 2

1

只需替换此代码..

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

[tableView deselectRowAtIndexPath:indexPath animated:YES];


switch (indexPath.section) {
    case 0:
        switch (indexPath.row) {
            case 0:
            {
                NSLog(@"Products");
            }
                break;
            case 1:
            {
                UINavigationController *navigationController = [self.storyboard instantiateViewControllerWithIdentifier:@"StoresViewController"];

                [self presentViewController:navigationController animated:YES completion:nil];
                NSLog(@"Stores");
            }
                break;
            case 2:
            {
                NSLog(@"Packages");
            }
                break;
            case 3:
            {
                NSLog(@"Finances");

                break;
            }
                break;

            default:
                break;
        }
}
于 2013-10-04T12:49:44.137 回答
0
StoresViewController *storeView = [[StoresViewController alloc]initWithNibName:@"StoresViewController" bundle:nil];

创建对象时只需传递笔尖。

于 2013-10-04T12:33:20.310 回答