Панель навигации не отображается после захвата изображения с камеры

Я обновляю приложение, которое у меня было для меня еще построено. В обновлении я, среди прочего, устанавливаю сегменты раскадровки, и приложение почти готово. Одна небольшая проблема заключается в том, что когда я делаю снимок с помощью камеры, и изображение отображается в TakenImageView, панель NavBar не видна. Тем не менее, если я перейду из галереи в TakenImageView, NavBar покажет! Фу. Средство выбора изображений отображается из HomeView, затем перемещается в TakenImage после того, как пользователь выбирает камеру или галерею. Я попытался перейти на подготовку и выполнить переход, но переход не запускается из галереи при выборе изображения или из UsePhoto камеры. Единственный способ получить изображение в TakenImageView - это вручную перейти через создание экземпляра представления в коде. См. ниже...

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    TakenImageVC *takenVC = [storyboard instantiateViewControllerWithIdentifier:@"TakenImageVC"];
    takenVC.takenimage = [info objectForKey:UIImagePickerControllerOriginalImage];
    [picker pushViewController:takenVC animated:YES];
    //_pickerImage = [info objectForKey:UIImagePickerControllerOriginalImage];
    //[self performSegueWithIdentifier:@"TakenSegue" sender:self];
}

В программе подготовки к переходу есть только эти три. Два верхних являются модальными и связаны с кнопками. TakenSegue подключается с контроллера. Конечно, я закомментировал destinationController, так как segue не срабатывает при использовании выполнения, как отмечалось ранее.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"InfoSegue"])
    {
        NSLog(@"Info Modal view");
    }
    if ([segue.identifier isEqualToString:@"HelpSegue"])
    {
        NSLog(@"Help Modal view");
    }
    if ([segue.identifier isEqualToString:@"TakenSegue"])
    {
        NSLog(@"Taken Segue");
        //TakenImageVC *takenVC = segue.destinationViewController;
        //takenVC.takenimage = _pickerImage;
    }
}

Пробуя разные методы, я добавил NavigationController между HomeView и TakenImageView и изменил класс на UIImagePickerController в атрибутах. Тем не менее, NavBar не отображается ... но только после фотографирования камерой! И, да, у меня панель навигации настроена так, чтобы не скрывать ... как в HomeView, так и в TakenView. Это находится в viewWillAppear обоих контроллеров.

Целевая версия - iOS7.1 и выше. Запуск Xcode 7.

Я был бы признателен за помощь от любого, кто подскажет, из-за чего панель навигации не отображается с камеры, и, конечно же, способ исправить это! Спасибо!


person Marc Watson    schedule 15.10.2015    source источник


Ответы (1)


Мне не удалось отобразить следующий вид с помощью панели навигации после камеры, даже после того, как я испробовал множество сценариев. Итак, увидев подсказку в другом сообщении, я удалил контроллер навигации между домашним и взятым представлениями, изменил атрибуты на none для Simulated Metrics / Top Bar и вставил панель инструментов на его место в TakenView и двух следующих представлениях. Да, это потребовало дополнительной работы в раскадровке, и мне пришлось добавить метку, где должно быть название, но все работает. И мне не пришлось добавлять больше кода, кроме замены кнопок возврата или отмены на unwindSegues.

person Marc Watson    schedule 22.10.2015