隐藏和检索与Viber相同的当前视图控制器

时间:2019-05-08 09:06:47

标签: ios presentviewcontroller

我正在使用具有音频/视频通话功能的应用程序。我想集成诸如在进行视频/音频通话时最小化视频/音频通话的功能。用户可以导航到其他视图控制器,但是仍然可以像Viber一样取回Audion / Video控制器。

当前,我展示了音频/视频视图控制器,因此我只关闭了导致正在进行的通话结束的选项。请帮助我了解Viber如何做到这一点。

我正在使用Callkit处理A / V来电。我设计了CallViewController类,该类负责A / V呼叫的布局。下面是我从Appdelegate.m文件中呈现CallViewController的方式。

///我正在使用Quickblox进行音频/视频通话

[CallKitManager.instance reportIncomingCallWithUserIDs:[opponentIDs复制]会话:会话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 :(得分:0)

您所描述的称为CallKit。它是Apple内置于iOS的工具包。

在不了解您源代码的细节的情况下,我无法帮助您进行集成,但这将是您入门的很好参考

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

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

答案 1 :(得分:0)

最后我添加了代码,以将代码从CallViewController(用于处理音频/视频通话)推送到Chat(负责聊天对话)类,并在Chat类上添加了返回按钮,该按钮将弹出到CallViewController。这不是我的问题的100%解决方案,但仍然有效。