我如何使用相同的导航控制器从不同的单元格转到不同的视图控制器?

时间:2011-07-07 16:15:04

标签: iphone objective-c ios uinavigationcontroller nsarray

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath    *)indexPath
{    
    [[tableView cellForRowAtIndexPath:indexPath] setSelected:NO animated:YES];

    if(indexPath.section==0)
    {
        if([array1 objectAtIndex:0])
        {
            BirthDateController *yeniSayfa=[[BirthDateController alloc] init];

            yeniSayfa.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal;

            [self presentModalViewController:yeniSayfa animated:YES];

            [yeniSayfa release];
        }
    }
}

我只希望第一个在array1中的第一个项目进入此BirthDate模式视图,但现在所有第一个部分都使用此模态视图。任何人都可以帮助我只创建第一个部分的第一个单元格打开此模态视图

2 个答案:

答案 0 :(得分:2)

  

我只想要第一个第一个   在array1中的项目去了   BirthDate模态视图,但现在所有   第一部分是使用这种模态视图。

如果我理解正确,则表示第一部分的第一行。然后,改变你的状况:

if( indexPath.section == 0 && indexPath.row == 0 ) {

结果代码如下所示:

if( indexPath.section == 0 && indexPath.row == 0 ) {
    BirthDateController *yeniSayfa=[[BirthDateController alloc] init];
    yeniSayfa.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:yeniSayfa animated:YES];
    [yeniSayfa release];
}

内部if

if([array1 objectAtIndex:0])

对我有意义。除非array1nil(或引发异常),否则它将评估为true。 objectAtIndex:无法返回nil,因为NSArray无法存储nil值,如果索引超出数组末尾,则会引发NSRangeException

答案 1 :(得分:1)

您还需要在 if 语句中检查

if (indexPath.section == 0 && indexPath.row == 0) {