Проблема didSelectRowAtIndexPath - PullRequest
       2

Проблема didSelectRowAtIndexPath

0 голосов
/ 18 августа 2010

У меня проблема с тем, что я работал в тесте, но теперь в более крупном приложении я не могу разобраться.

Во-первых, у меня есть представление, в котором по шесть кнопок, каждая загружает другое представление.Я использую:

- (IBAction)showInfo2:(id)sender {
InfoViewController *Infocontroller = [[[InfoViewController alloc] initWithNibName:@"InfoView" bundle:nil] autorelease];
Infocontroller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:Infocontroller animated:YES];
}

Это, кажется, работает нормально, и загружает следующий раздел, в данном случае «infoview».Затем я загружаю табличное представление и заполняю его полными данными из xml-фида, это опять работает, (хотя для меня это было непросто!).

Проблема возникает, когда я знаю, попробуйте и используйте:Кажется, ничего не происходит, т. Е. Новое представление не загружено.

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

// Navigation logic may go here -- for example, create and push another view controller.
SubInfoViewController *subInfoViewController = [[SubInfoViewController alloc] initWithNibName:@"SubInfoView" bundle:nil];
[self.navigationController pushViewController:subInfoViewController animated:YES];
[subInfoViewController release]; 
}

Я знаю, что он вызывается, потому что это работает:

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

NSString *message = [[NSString alloc] initWithFormat:@"You selected a row"];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Row Selected" message:message delegate:nil cancelButtonTitle:@"Yes I did" otherButtonTitles:nil];
[alert show];

[message release];
[alert release];
}

Любая помощь более чем приветствуется, и, пожалуйста,нежный новичок:)

Ответы [ 2 ]

2 голосов
/ 18 августа 2010

Ваше представление, вероятно, помещено в стек навигации, но вы его не видите, потому что ваше родительское представление является модальным.

Вы не можете попытаться отобразить ваш SubInfoViewController следующим образом:

SubInfoViewController *subcontroller=[[SubInfoViewController alloc] initWithNibName:@"SubInfoViewController" withBundle:nil];
[self presentModalViewController:subcontroller animated:YES];
[subcontroller release];

Если вы хотите сохранить логику навигации в своем приложении, вам не следует отображать ваш InfoViewController модально, а представлять его в обычном порядке в вашем стеке навигации.

Вы можете попытаться отклонить ваш модальный вид, прежде чем нажать SubViewController. В этом случае вы должны сделать что-то вроде этого:

SubInfoViewController *controller=[[SubInfoViewController alloc] initWithNibName:@"SubInfoViewController" bundle:nil];
[self.parentViewController pushViewController:controller animated:YES];
[self dismissModalViewControllerAnimated:YES];
[controller release];

Вы получите предупреждение, потому что parentViewController может не отвечать на pushViewController: animated:, но с NSLog вы увидите, что ваш parentViewController на самом деле UINavigationController.

Надеюсь, это поможет!

0 голосов
/ 18 августа 2010

В чем именно проблема?На первый взгляд ваш код выглядит хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...