запуск UIViewcontroller из приложения сбоев UITableViewController - PullRequest
2 голосов
/ 30 декабря 2011

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

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

Это не сработало, приложение зависло, и я получил сообщение в файле main.m: "Поток 1 получил сигнал Sigabrt"

Итак, удалил последовательность и попытался создать 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 работает, а Segue не работает ??? Может кто-нибудь, пожалуйста, помогите, я так растерялся.

1 Ответ

3 голосов
/ 30 декабря 2011

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

  • (void) prepareForSegue: (UIStoryboardSegue *) segue sender: (id) sender {

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

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

    }}

...