你可以在另一个iOS App中运行iOS应用程序

我是否可以编写一个应用程序,它应该是一些其他应用程序的包装器,然后在我的主应用程序中运行这些应用程序?

我的想法是,我只想写一个菜单,但我希望将它集成为许多其他应用程序的最顶层。

我想到的另一种方式是可能在顶层创建一个UIWindow并在那里运行它但是我遇到了问题。

谢谢!

我认为这是采取整体措施的错误方法。 如果您希望代码可以重用,请编写一个库。

你不能在一个应用程序中托管“多个应用程序”,因为据我所知,Apple的沙盒阻止了这一点,并且只允许应用程序一次运行一个。

您可以通过几种方式模拟所需的function:

  • 使用UINavigationControllerUITabViewController在不同的viewcontrollers之间导航,从而允许顶级菜单导致应用程序中的不同“function”。 (这意味着你并不需要明确地使用UIWindow;你可以使用Storyboard和Storyboard segues来连接这些不同的function部分)优点:它是一个应用程序。 缺点:在app store中列出一个。

  • 使用自定义URL方案在两个单独的iOS应用程序之间移动。 每个iOS应用程序(通常)都是自己的项目,(如果你不计算’目标’,它可以省略每个构建中的特定文件),而不是每个应用程序都安装在每个设备上。 但假设客户同时拥有两个应用程序,您可以使用此类URL方案从另一个应用程序打开一个应用程序,甚至可以传递数据。 我自己的应用程序使用URL方案将数据从’lite’版本传递到’pro’版本。 优势:app store中的多个商家信息。 缺点:如果用户尚未安装这两个应用程序,则无法使用。

  • 重复使用多个应用程序中的“顶级菜单”代码,然后执行一些逻辑,以便应用程序仅在安装其他应用程序时使用自定义URL方案。 然后,您还可以将他们引导到他们尚未安装的任何应用程序的应用程序商店页面。 优势:商店中的多个商家信息,统一体验,如果尚未安装应用,则会将用户带到app store。 (我还没有实现代码来检查是否安装了应用程序……看起来这里已经问过这个问题了 。)

编辑: 我读了你的其他问题 。 它看起来像“顶级”,你的意思是屏幕上的图形粘性,并且当用户导航应用程序时,其他视图不会删除它? 我不确定如何使用Foundation,但您可以使用Quartz2D(面向实用程序应用程序)或Cocos2D(面向游戏)。