Если вы создаете UITabBarController из представления, которое управляется в UINavigationController (т. Е. Если вы сначала создаете навигационный контроллер и он все еще присутствует при создании tabbarcontroller), вы начинаете борьбу с фреймворками.Вот рекомендации из документов по объединению интерфейсов viewcontroller:
Приложение, которое использует контроллер панели вкладок, может также использовать контроллеры навигации в одной или нескольких вкладках.При объединении этих двух типов контроллера представления в одном пользовательском интерфейсе контроллер панели вкладок всегда действует как оболочка для контроллеров навигации.Вы никогда не хотите помещать контроллер панели вкладок в стек навигации контроллера навигации.Это создает необычную ситуацию, когда панель вкладок появляется только тогда, когда конкретный контроллер представления находится в верхней части стека навигации.Панели вкладок спроектированы так, чтобы быть постоянными, и поэтому этот переходный подход может сбивать пользователей с толку.
Я прочитал это как «если это не сломает то, о чем мы не подумали на следующемВ любом случае, мы можем отклонить приложение, потому что оно «сбивает с толку пользователей».
Я полагаю, что вы можете уничтожить всю навигационную иерархию и навигационный контроллер, если вам не нужно возвращаться туда (например, если вы просто использовалиэто для одноразового экрана настройки).Или вы можете посмотреть другие варианты навигации в viewcontroller, который управляется навигационным контроллером.
Одна из попыток может состоять в том, чтобы перейти к UITableView и использовать его ячейки для вставки модального представления в стек навигации.Это было бы знакомо пользователям, а также сочеталось с назначением классов навигации.