Как я могу использовать один и тот же контроллер навигации, чтобы использовать разные контроллеры представления из разных ячеек? - PullRequest
0 голосов
/ 07 июля 2011
- (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];
        }
    }
}

Я хочу, чтобы только этот первый элемент в массиве 1 перешел в это модальное представление BirthDate, но теперь весь первый раздел использует это модальное представление. Может кто-нибудь помочь мне сделать так, чтобы открывалась только первая ячейка первого разделаэто модальное представление.

Ответы [ 2 ]

2 голосов
/ 07 июля 2011

Я хочу, чтобы только первый элемент в массиве 1 перешел в это модальное представление 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])

делаетимеет смысл для меня.Он будет иметь значение true, если array1 не равно nil (или не возникнет исключение).objectAtIndex: не может вернуть nil, потому что NSArray не может хранить nil значений, а если индекс находится за концом массива, он поднимает NSRangeException.

1 голос
/ 07 июля 2011

Вам также необходимо проверить строку в операторе , если .

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