Почему перо представления не открывается после выбора ячейки? - PullRequest
0 голосов
/ 25 июня 2011

Я создал nib-файл и все соединения сделал правильно.Когда я запускаю приложение и выбираю ячейку, новый кончик не открывается вообще.Пожалуйста, помогите!

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

    //Get the selected country
NSString *selectedCountry = [[NSString alloc] initWithFormat:@"you pressed for this."];

//Initialize the detail view controller and display it.
DetailViewController *dvController = [[DetailViewController alloc] 
                                      initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];

dvController.selectedCountry = selectedCountry;
[self.navigationController pushViewController:dvController animated:YES];
[dvController release];
dvController = nil;

}

Ответы [ 4 ]

3 голосов
/ 25 июня 2011

Похоже (из-за отсутствия вывода в журнал для оператора NSLog), что ваш delegate не настроен должным образом, как если бы в противном случае регистрировалось null или какое-либо значение объекта. Вам необходимо перепроверить ваши IB-соединения или, если вы сделали это программно, тогда выполните tableView.delegate = self;

0 голосов
/ 25 июня 2011

Надеюсь, вы пытаетесь загрузить контроллер подробных сведений из контроллера списков.И табличное представление является членом listviewcontroller.

Возможная причина проблемы.

Если вы добавляете listviewcontroller.view в качестве подпредставления для любого другого представления viewcontollers, тогда

[self.navigationController pushViewController: dvController animated: YES];не работает.

Итак, вы должны получить экземпляр вашего делегата приложения и сделать следующее.

YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];

[appDelegate .navigationController pushViewController:dvController animated:YES];

Проверьте это.Если это не является причиной вашей проблемы, пожалуйста, дайте мне знать, что выводит консоль Дипак.

0 голосов
/ 25 июня 2011

Не отпускайте dvController И не устанавливайте nil - сделайте только один.

0 голосов
/ 25 июня 2011

Попробуйте это:


DetailViewController *dvController = [[DetailViewController alloc] 
                                      initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];

dvController.selectedCountry = selectedCountry;
[self.navigationController pushViewController:dvController animated:YES];
dvController = nil;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...