Вы бы всегда получали ландшафт, потому что это ваше значение по умолчанию (из вашего оператора if).Если вы пройдете через отладчик с точкой останова, то увидите, что указанная ориентация равна Неизвестно .
На самом деле ваш код в порядке, но это ограничениесимулятор.Если вы берете тот же код, используя ориентацию Device , а не ориентацию Interface , вы получите фактические значения, если будете использовать его на физическом устройстве, которое может управляться ifзаявление у вас есть.