1

Создаю UINavigationController (в качестве начального экрана) и соедините их с моим UITableViewController (в качестве корня).popViewController, не работающий с раскадровки

Далее я создаю еще один UINavigationController и подключаюсь к моему UIViewController. Внутри моего UITableViewController я соединяю свою первую ячейку с UINavigationController (Это было связано с моим UIViewController) (Segue -> show).

enter image description here

При запуске проекта появляется мой стол, когда я выбираю мой первый ряд, появляется мой UIViewController. Замечательно!

Когда я был в своем UIViewController, кнопка обратной панели не появляется, в моем случае я создаю кнопку левого бара, которая будет запускать функцию, чтобы закрыть это представление и вернуться к моему UITableViewController, потому что я использую многие коды:

-(void)back{ 
    NSLog(@"Called"); 
    [self.parentViewController.navigationController popViewControllerAnimated:YES]; 
} 

-(void)back{ 
    NSLog(@"Called"); 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

-(void)back{ 
    NSLog(@"Called"); 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

Но все они не работают, и мое мнение не отклоняется, как я могу решить эту проблему?

ответ

2

Проблема заключается в том, что ваш контроллер навигации, вызываемый из ячейки просмотра таблицы, имеет только один контроллер представления (ваш) в своем стеке навигации. Поэтому он не может ничего вытащить из этого стека, иначе стек был пустым.
Вместо этого вам нужно убрать навигационный контроллер.

1

Я думаю, что решением было бы удалить второй контроллер навигации. Поскольку TableView уже встроен в контроллер навигации, сериал show to UIViewController должен быть непосредственно подключен к нему.

Explanation

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