3

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

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

我想到的另一种方法可能是在顶层创建一个 UIWindow 并在其中运行它,但我在传递触摸时遇到了问题。

谢谢!

4

2 回答 2

4

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

于 2013-03-26T00:06:55.550 回答
1

您不能在一个应用程序中托管“多个应用程序”,因为据我所知,Apple 的沙盒可以防止这种情况发生,并且只允许应用程序一次运行一个。

不过,您有几个选项可以模拟您想要的功能:

  • 使用UINavigationControllerorUITabViewController在不同的视图控制器之间导航,从而允许顶级菜单在应用程序中引导不同的“功能”。(这意味着您实际上并不需要显式使用 UIWindow;您可以使用 Storyboard 和 Storyboard segues 来连接这些不同的功能部分) 优势:这是一个应用程序。缺点:应用商店中的一个列表。

  • 使用自定义 URL 方案在两个单独的 iOS 应用程序之间移动。每个 iOS 应用程序(通常)都是它自己的项目,(如果您不计算“目标”,它可以从每个构建中省略特定文件)并且并非每个应用程序都安装在每个设备上。但是假设客户拥有您的两个应用程序,您可以使用这样的 URL 方案从另一个应用程序打开一个应用程序,甚至传递数据。我自己的应用程序使用 URL 方案将数据从“精简”版本传递到“专业”版本。优点:应用商店上的多个列表。缺点:如果用户没有安装这两个应用程序将无法工作。

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

编辑:我读了你的另一个问题。看起来“顶级”是指在屏幕上以图形方式粘贴的东西,并且在用户导航应用程序时不会被其他视图删除?我不确定如何使用 Foundation 来做到这一点,但你可以使用 Quartz2D(面向实用程序)或 Cocos2D(面向游戏)来做到这一点。

于 2013-03-26T00:56:39.723 回答