2014-10-23 5 views
3

Итак, я пытаюсь запустить проект без раскадровки, и я не могу понять, почему UIWindow не передает команды авторотации контроллеру корневого представления. С раскадровки работает авторотация. Если я создаю окно программно, авторотация не работает.iOS 8: Авторотация не работает без раскадровки

screenshot

Это, как я создаю экземпляр окна в App Делегат:

window = UIWindow(frame: UIScreen.mainScreen().bounds) 
if let window = window { 
    window.backgroundColor = UIColor.whiteColor() 
    window.makeKeyAndVisible() 

    let nc: SignInViewController = UIStoryboard(name: "Main", bundle: nil) 
      .instantiateViewControllerWithIdentifier("SignInViewController") as SignInViewController 
    window.rootViewController = nc 
} 

Спасибо!

+0

Какие Versi на XCode вы используете? – valfer

+0

Эй, спасибо. Я использую Xcode 6.1. – chourobin

+0

У меня проблема как в версии Xcode 6.0.1 (6A317), так и в версии 6.1 (6A1052d), поэтому я не думаю, что это связано с Xcode – calql8edkos

ответ

1

Отмеченный ответ - перейти на XCode 6.0.1 - я не рекомендую.

1) Если вы не используете раскадровки(Ответьте на эту тему !!)

Перейти к -> Название проекта -> Цели -> Название проекта -> Информация о развертывании ->Главный интерфейс -> обнулите его


2) В случае, если вы использовать раскадровки (не главный ответ)

ваш AppDelegate должен выглядеть ...

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
{ 
    return true 
} 
+0

У меня такая же проблема, как и у оригинального плаката, и проблема возникает, даже когда основной интерфейс установлен как пустой. – carbocation

0

Убедитесь, что вы включите ориентации устройства в целом проекта настройки

в Xcode 6.1, щелкните основную папку проекта, вкладка Общие

Прокрутка вниз к устройству ориентации, включить «Портрет», «Пейзаж левый »,„Пейзаж Right“

См iOS 8.1 auto rotation для изображения настройки ориентации устройства

+0

Спасибо, у меня есть этот набор https://www.dropbox.com/s/9jh0ww0sfjkdzbz/Screenshot%202014-10-23%2019.04.34.png?dl=0 – chourobin

2

Я думаю, что ваш код правильно, и вы видите, один (из многих) ошибок в XCode 6.1.

Я пробовал очень простое приложение с 6.1, используя ваш код, и я мог экспериментировать с ошибкой. Затем я понизился до 6.0.1, и авторотация моего приложения была идеальной.

Я советую вам перейти на XCode 6.0.1 и повторить попытку.

Вы можете скачать его здесь: Apple Downloads

+1

Спасибо, это очень беспокоит, так как Xcode 6.1 является текущий выпуск. – chourobin

+0

Я попробовал это в Xcode Version 6.0.1 (6A317), это ничего не меняло для меня. – calql8edkos

+0

Действительно, для меня версия Xcode проблематична. Кто-нибудь нашел решение? Разочарование. – DarkoM

0

я просто решить эту проблему в моем проекте. для меня, решение было удалить анимацию из следующего кода:
[self presentViewController: root animated: animated completion:^{ [AppDelegate singleton].window.rootViewController = root; }]; который сейчас просто [AppDelegate singleton].window.rootViewController = root;

я не знаю, если это отвечает на ваш вопрос, но он решил мой экземпляр, что я думаю является общей проблемой.

8

Вы используете раскадровки? Если это так, у вас может быть старый код в вашем приложении didFinishLaunchingWithOptions.

Попробуйте удалить следующую строку кода и любых других делать с UIWindow:

self.window = [[UIWindow Alloc] initWithFrame: [[UIScreen В начало] границы]];

Просто нужно удалить вышеуказанную строку из файла AppDelegate.m.

Смежные вопросы