Если интерпретировать это правильно, когда вы нажатие вида в результате выбора вкладки, вы одновременно меняете выбранную вкладку. Вероятно, это попытка изменить иерархию представлений, на которые вы сейчас нажимаете представление (это было бы результатом выбора другой вкладки, на которую вы пытаетесь установить ее). Так что это, вероятно, сбой, потому что он заменяет представление, которое находится в процессе отображения.
Кроме того, из его звука вы используете UITabBarController
внутри UINavigationController
. Apple говорит, что вы не должны размещать UITabBarController
внутри другого контроллера. Ниже из документа Apple от UITabBarController
:
При развертывании интерфейса панели вкладок вы должны установить это представление в качестве корня своего окна. В отличие от других контроллеров представлений интерфейс панели вкладок никогда не должен устанавливаться как дочерний элемент другого контроллера представления.
Если это так, вы должны переконфигурировать свое приложение, чтобы вы не содержали контроллер панели вкладок в любых других контроллерах представлений, или ваше приложение может вести себя странно или перестать работать в какой-то момент.
Если вы хотите, чтобы все делалось именно так, как вы хотите, вы можете напрямую использовать UITabBar и реализовать свой собственный UITabBarDelegate.
Трудно понять ваш вопрос. Можете ли вы описать поток пользовательского интерфейса и проблему больше? – CaptJak
Возможно, вам придется подождать viewWillAppear из D, прежде чем вы будете использовать selectedIndex – 0xFADE