У меня была похожая проблема, но я думаю, что нашел гораздо более простой способ справиться с ней.В контроллеры представления, на которых пользователь может оказаться (O или Z в начальном вопросе), я помещаю
[self.navigationController popToRootViewControllerAnimated:NO];
в viewWillDisappear этих VC.Кажется прямо и легко.Я упускаю причину, по которой я не хочу этого делать?Как и в оригинальном вопроснике, я всегда хочу начать с корневого VC моей вкладки, независимо от того, где пользователь остановился в последний раз, когда они были на этой вкладке.
Быстрое обновление: я создал свою собственную версию сплитаконтроллер view и добавление вышеуказанной строки к viewWillDisappear сделали некоторые нежелательные вещи на iPad, поэтому мне пришлось добавить условие для проверки типа устройства (на которое не влияла проблема с панелью вкладок, так как оба контроллера представления были частью splitVC)Я построил), но в остальном, кажется, делать то, что я хочу.