Представление представления из UIAlertController переводит предупреждение в положение с ошибкой в верхнем левом углу экрана. iOS 8.1, устройство и симулятор.
Мы заметили это в приложении, когда пытаемся представить представление из текущего "самого верхнего" представления. Если UIAlertController оказывается самым верхним видом, мы получаем такое поведение. Мы изменили наш код, чтобы просто игнорировать UIAlertControllers, но я отправляю его, если другие попадают в ту же проблему (поскольку я ничего не мог найти).
Мы выделили это на простой тестовый проект, полный код внизу этого вопроса.
-  Реализовать viewDidAppear:на контроллере представления в новом проекте Single View Xcode.
-  Представьте предупреждение UIAlertController.
-  Контроллер Alert немедленно вызывает presentViewController:animated:completion:для отображения и затем отклонения другого контроллера представления:
 Когда presentViewController:... анимация presentViewController:..., UIAlertController переместится в верхний левый угол экрана:
 
 Когда dismissViewControllerAnimated: анимация dismissViewControllerAnimated: предупреждение перемещается еще дальше в верхнее левое поле экрана:
 
Полный код:
- (void)viewDidAppear:(BOOL)animated {
    // Display a UIAlertController alert
    NSString *message = @"This UIAlertController will be moved to the top of the screen if it calls 'presentViewController:'";
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"UIAlertController iOS 8.1" message:message preferredStyle:UIAlertControllerStyleAlert];
    [alert addAction:[UIAlertAction actionWithTitle:@"I think that a Bug" style:UIAlertActionStyleCancel handler:nil]];
    [self presentViewController:alert animated:YES completion:nil];
    // The UIAlertController should Present and then Dismiss a view
    UIViewController *viewController = [[UIViewController alloc] init];
    viewController.view.backgroundColor = self.view.tintColor;
    [alert presentViewController:viewController animated:YES completion:^{
        dispatch_after(0, dispatch_get_main_queue(), ^{
            [viewController dismissViewControllerAnimated:YES completion:nil];
        });
    }];
    // RESULT:
    // UIAlertController has been moved to the top of the screen.
    // http://i.imgur.com/KtZobuK.png
}
Есть ли что-либо в приведенном выше коде, вызывающем эту проблему? Существуют ли какие-либо альтернативы, которые позволили бы безболезненную презентацию представления из UIAlertController?
 rdar://19037589 
http://openradar.appspot.com/19037589
