Отключить из UitableViewController не работает как толчок, только как модальный

StackOverflow https://stackoverflow.com/questions/8814756

  •  26-10-2019
  •  | 
  •  

Вопрос

У меня есть этот стек просмотров:

UIViewController --> (Modal segue) --> 
UITabBarController --> (relationship) --> 
UINavigationController --> (relationship) --> 
UITableViewController --> (segue) --> UIViewController

Вот мой код Seague в UitableViewController:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"selected row...");
    [self performSegueWithIdentifier:@"showVmail" sender:self];
    NSLog(@"done segue");
}

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showVmail"]) {
        NSLog(@"Got segue request...");
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

        [segue.destinationViewController setMyVmail: [self.vmails objectAtIndex:indexPath.row]];

    }
}

Когда я нажимаю на элемент в контроллере View Table, я вижу эти сообщения журнала:

selected row...
Got segue request...
Setting myVmail... // from the new view controller
done segue

И это не перемещается на мой новый контроллер представления. Если я перехожу на модальный, перепроверьте, что это работает, но, конечно, нет кнопки Back. Насколько я вижу, я все сделал правильно. Я прочитал много ответа на переполнение стека, с той же проблемой, и их разрешение - поместить в UinavigationController. Я уже сделал это.

Любые мысли были бы очень оценены!

Это было полезно?

Решение

Я попробовал предложение, увидев, где вы должны вернуться к простым случаям. Я изменил UinavigationController в раскадровке, чтобы указать на базовый UiviewController, а затем для этого, чтобы иметь кнопку, которая подключилась к другому UiviewController. Когда я запустил это, я все еще получил свой UitableViewController!

Именно тогда я вспомнил, что программатически заполнял объекты в Uitabbarcontroller, и что я не ссылался на UinavigationController, но пропускаю это и вызывая UitableViewController! Так что на самом деле, у меня действительно была такая же проблема, как и у всех, упустив UinavigationController!

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top