可以从另一个应用程序呈现UIViewController吗?

时间:2017-02-27 22:32:09

标签: ios xpc

这可能看起来过于雄心勃勃,但我正在探索在一个单独的应用程序中显示来自一个应用程序的视图控制器的能力(均由我撰写)。我不是在谈论重复使用课程,我指的是在最重要的课程中从另一个过程中提出一个控制器。

我相信这是在macOS上的XPC领域,以及目前在iOS上如何使用共享扩展。不幸的是,我并不是在寻找共享控制器。

这是否可行(如果必须,甚至使用私有API)?

2 个答案:

答案 0 :(得分:1)

因为这两个应用程序都是由沙盒化的,所以它们中的任何一个都无法定位和加载(来自)另一个。扩展是Apple提供的另一个应用程序执行某些操作的唯一方法。

使用私有API不会解除沙盒限制。使用越狱设备,可以找到其他应用程序。在这种情况下,-[NSBundle loadClassNamed:]将允许您从加载的(应用程序)包中获取并实例化一个类,但它仍将由实例化它的进程控制。

所以,不,你问的问题对于分发给其他用户而不是你自己的应用来说是不切实际的。如果它只是为了你自己,你可能会在越狱设备上的进程之间创建,控制和通信方面做很多工作。

答案 1 :(得分:0)

如果您有自己的服务器,那么这是可能的。只需让app1向您的服务器发送一个触发器,然后您的服务器就会向您的app2发送推送通知。当用户点击通知时,它将打开你的app2 viewcontroller。