Скрыть и получить обратно текущий контроллер представления так же, как Viber - PullRequest
0 голосов
/ 08 мая 2019

Я работаю над приложением с функцией аудио / видео звонков. Я хочу интегрировать такую ​​функцию, как минимизация видео / аудио звонков, пока видео / аудио звонки продолжаются Пользователь может переходить на другие контроллеры представления, но, тем не менее, он может восстановить контроллер Audion / Video так же, как это делает Viber.

В настоящее время я представляю контроллер просмотра аудио / видео, поэтому у меня есть только отклоненная опция, которая приводит к завершению текущего вызова. Пожалуйста, помогите мне узнать, как Viber делает это.

Я использую callkit для обработки A / V входящего вызова. Я разработал класс CallViewController, который отвечает за макет A / V-вызова. Ниже представлен способ представления CallViewController из файла Appdelegate.m.

// Я использую Quickblox для аудио / видео звонков

[CallKitManager.instance reportIncomingCallWithUserIDs: [копия оппонента] сессия: сессия uuid: self.callUUID onAcceptAction: ^ {

        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Second" bundle:nil];

        UIViewController *strongSelf = [Util fetchLastViewcontroller];
        CallViewController *callViewController =
        [storyboard instantiateViewControllerWithIdentifier:@"CallViewController"];

        callViewController.session = session;
        //callViewController.usersDatasource = strongSelf.dataSource;
        callViewController.callUUID = self.callUUID;
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:callViewController];
        self.nav = nav;
        [strongSelf presentViewController:nav animated:NO completion:nil];

    } completion:nil]

Так что теперь, если пользователь должен перемещаться по другому экрану, скажем, к экрану чата, тогда мне нужно было закрыть callViewController. Но я хочу, чтобы CallViewController все еще оставался в памяти, и мне нужно получить его обратно, как это делает Viber.

Я прикрепил скриншот Viber

В приведенной ниже ссылке на изображение пользователь может перейти к экрану чата с помощью A / V-вызова и наоборот. https://i.stack.imgur.com/kodFz.jpg

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

В конце концов я добавил код для отправки из CallViewController (отвечающего за обработку аудио / видео вызовов) в класс Chat (отвечающий за разговоры в чате) и добавил кнопку возврата в классе Chat, которая появится в CallViewController.Это не было 100% решением моей проблемы, но, тем не менее, это сработало.

0 голосов
/ 08 мая 2019

То, что вы описываете, называется CallKit. Это набор, встроенный в iOS от Apple.

Не зная специфики вашего исходного кода, я не могу помочь вам с интеграцией, однако это было бы очень хорошим руководством для начала работы

https://developer.apple.com/documentation/callkit

https://www.raywenderlich.com/1276414-callkit-tutorial-for-ios

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...