При отклонении представления иерархия представления подкачки нарушена

Я использую библиотеку с открытым исходным кодом SLPagingView ( https://github.com/StefanLage/SLPagingView/) для приложений, основанных на представлении подкачки, таких как Twitter или Tinder. С какой-то страницы я открываю подробный вид. Когда я вернусь, макет просмотра страниц нарушен.

DetailViewController.m

- (void)backButtonPressed {
    [self dismissViewControllerAnimated:YES completion:nil];
}

На самом деле я заметил, что иерархия приложения нарушена как раз перед появлением DetailView.

SomePageViewController.m

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Perform segue to detailView
      [self performSegueWithIdentifier:@"actionDetail" sender:nil];

   /* Does not work with a modal view controller either
 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main"bundle:nil];
    DetailViewController *detailViewController =
(DetailViewController *)
    [storyboard instantiateViewControllerWithIdentifier:@"detailcontroller_id"];
[self pushViewController:detailViewController animated:YES];*/
}

Я получил Presenting view controllers on detached view controllers is discouragedпредупреждение. Я пытался заменить self от self.navigationControllerили же self.parentViewController.navigationControllerно оба не работают.

Кто-нибудь, использующий эту библиотеку, решает эту проблему или знает решение?

1 ответ

Решение

Исправлена. Я изменил библиотеку SLPagingView. добавлять [self addChildViewController:ctr] в initWithNavBarControllers:, initWithNavBarItem: и другие методы жизненного цикла. Проверьте различия: https://www.diffchecker.com/cnlvslym

Другие вопросы по тегам