如何根据按下的表视图单元格加载不同的视图

时间:2011-10-07 13:08:14

标签: objective-c xcode uitableview

在我的应用程序中,我需要在按下时为表格视图中的每个单元格加载不同的视图。我已经尝试了下面的代码,但是当按下单元格时我的应用程序失败了。

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell.textLabel.text == @"Area")
    {
        ThirdViewController *tvController = [[ThirdViewController alloc] initWithNibName:@"ThirdView" bundle:nil];
        [self.navigationController pushViewController:tvController animated:YES];
    }
}

请注意,我已在代码所在的实现文件中导入了“thirdviewcontroller.h”文件。

我仍然习惯使用obj-c和Xcode进行编码,所以如果我尝试过一些完全愚蠢/愚蠢的事情,请原谅。如果您需要更多信息,请告知我们,以便我的问题不会被解决。

我也在四处寻找,但我发现的任何东西似乎对我都没有帮助。

由于

2 个答案:

答案 0 :(得分:0)

您可能希望根据您点击的单元格添加modalviewcontroller。 你知道你用数组填充了tableview,是吗?

做这样的事情:

if ( [listOfItems objectAtIndex:indexPath.row] == someStatement)
{
    YourVC = [[CustomViewController alloc] init];

    self.YourVc.dismissDelegate = self;

    UINavigationController *navController = [[UINavigationController alloc]
                                               initWithRootViewController:self.YourVc];

    navController.modalPresentationStyle = UIModalPresentationFormSheet; //or any of the other presentationstyles.

    [self presentModalViewController:navController animated:YES];

    [self.addTableViewController release];
    [navController release];
}

这将根据您所做的选择显示新的viewcontroller。

答案 1 :(得分:0)

你差不多完成了。要比较您需要使用的测试:

[cell.textLabel.text isEqualToString:@"Area"]

但是,最好依靠indexPath而不是textLabel

另外,不要忘记发布tvController