2011-12-30 5 views
2

У меня есть UItableViewController. Внутри этого класса есть следующий метод, когда я пытаюсь запустить другой UIViewController. Я попытался соединить два используя SEGUE и дал ему идентификатор, а затем использовал эту версию:запуск UIViewcontroller из приложения UITableViewController сбой

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {  
    NSLog(@"About to launch MyDetail View controller"); 
    [self performSegueWithIdentifier:@"myDetailSegue" sender:self]; 
} 

Это не работал, приложение замерзла, и я получил сообщение в файле main.m следующим образом: «» тема 1 получил сигнал SIGABRT»

Итак удалил SEGUE и попытался создать экземпляр UIViewController следующим образом,

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSLog(@"About to launch my Detail View controller"); 
    UIStoryboard *sboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil]; 
    UIViewController *myDetailVC = [sboard instantiateViewControllerWithIdentifier:@"myDetailVC"]; 
    [self.navigationController pushViewController:myDetailVC animated:YES]; 
} 

, который работал. Но теперь я в замешательстве. Почему бы способ работы UIStoryboard и переход не? Может ли кто-то помочь, Я весьма озадачен.

+0

Пожалуйста, пост журнал сбоев. – Ilanchezhian

+0

Где я могу это найти? – banditKing

ответ

3

Я не понимаю, в чем проблема, с которой вы столкнулись, но я хочу сказать вам, что из-за того, что вы используете uitableview, сначала подключите его ячейку к новому контроллеру представления и выберите метод «Push» segue. После этого добавьте следующий код в свое приложение вместо пользователя didselectrowatindexpath методов.

  • (пустоты) prepareForSegue: (UIStoryboardSegue *) Segue Отправитель: (ID) отправитель {

    /* При выборе строки, то переход создает подробный контроллер представления в качестве пункта назначения. Задайте деталь детализации контроллера подробного представления для элемента, связанного с выбранной строкой. */ если ([[идентификатор] isEqualToString переход: @ "Showcategorydetails"]) {

    NSIndexPath *selectedRowIndex = [self.tableView indexPathForSelectedRow]; 
    CategoryDetailsController *detailViewController = [segue destinationViewController]; 
    detailViewController.category_title = [maincategories_array objectAtIndex:selectedRowIndex.row]; 
    

    }}

+0

Спасибо. проблема заключалась в том, что конечный Viewcontroller рушился, потому что выходные соединения были испорчены. Я скопировал этот ViewController на раскадровке из другого контроллера View, а также скопировал выходные соединения. Итак, эта копия ViewController была подключена к выходам старого Viewcontroller. Как только это было исправлено, я был готов идти. Спасибо – banditKing

Смежные вопросы