Позвольте мне объяснить вам, что такое стек nvaigationcontroller.
Stack = {корень, A, B, C, D}.
Текущий видимый вид - D. Когда вы делаете pushViewController (E), это означает, что вы добавили новый вид в стек, который становится видимым: Stack = {root, A, B, C, D, E}. Когда вы создаете popViewController, вы удаляете последний элемент стека и устанавливаете новый последний элемент как видимый, в нашем случае он становится: Stack = {root, A, B, C, D} снова и D является видимым.
Теперь, если вы выбираете popToRootController (A), это означает, что вы удаляете все элементы из стека, пока верхний элемент не равен A, и он становится видимым, поэтому в нашем случае это Stack = {root, A}.
Надеюсь, я правильно понял ваш вопрос и объяснил вам, чтобы вы могли правильно понять иерархию. Если нет, пожалуйста, переформулируйте свой вопрос.