Я попробовал ваш код в очень маленьком тестовом проекте и не увидел описанную вами проблему. Я предлагаю вам сделать то же самое. Начните с шаблона приложения на основе навигации. В главном наконечнике установите флажок «Полноэкранный режим« Требует полноэкранного режима »и измените размер с помощью наконечника навигационного контроллера и сделайте его навигационную панель прозрачной. В кончике контроллера корневого представления поместите кнопку, на которую вы можете ответить, настройте действие и вставьте свой код. Создайте класс ContextMenuViewController; нет необходимости давать ему перо.
Запустите приложение и нажмите кнопку. Модальное представление перемещается на место с прозрачной панелью навигации, не затрагивая прозрачность уже существующей панели навигации и не перемещая существующее содержимое.
Итак, теперь, когда вы доказали себе, что он работает в этом простом проекте, это просто вопрос того, что вы делаете, отличается от того, что вы делаете в реальном проекте.