我正在设计一个将被其他开发人员使用的iOS静态库。这个库需要提供自己的模态UI。我正在寻找最简单的方法来设计应用程序和此库之间的接口来完成此操作。我只需要支持iOS 4.0及更高版本。设计提供自己的模态UI的iOS静态库的最简单方法是什么?
粗糙架构
我的静态库有一个班一个非常简单的API。应用程序的AppDelegate实例化这个类并将自己设置为委托,以便它可以接收通知。当应用程序希望库显示其UI时,它会调用单个方法,然后当库完成其工作时,它会通过其中一个委托协议的方法发送通知。
我可以看到两种方法来实现这一点。
选项1
当应用程序需要的库,以显示其UI,该通行证的AppDelegate在self.window,和库设置自己的根视图控制器,有效地采取UI的全部所有权。 UI完成后,它会通知AppDelegate,AppDelegate然后在窗口上设置自己的根视图控制器,并取回UI的所有权。
选项2
库暴露视图控制器,其应用可以推到它喜欢的任何视图堆栈。当图书馆通知用户界面已完成时,该应用程序还负责删除视图控制器。
问题
对于选项1,有可能是在运行的应用程序的中途改变根视图控制器而问题。使用选项2时,可能会出现问题,提供可以在任意上下文中工作的视图控制器(作为全窗口视图控制器,作为UINavigationController的子视图等)。
这两个选项的另一个问题是AppDelegate可能收到的其他UIApplicationDelegate通知,比如applicationWillResignActive:和applicationDidBecomeActive :.该库可能需要处理这样的通知以正确维护其UI。当UI的活动状态时,AppDelegate是否必须将其中的每一个传递给库?
有没有更好的选择3,我没有想到?
我们需要在NSObject类中编写代码 –
几乎每个类你放这个是NSObject的后裔它必须是ObjectiveC代码,所以我不确定我理解你的问题。请注意,这是> 2岁,所以不知道这是否仍然有效。 – Dad
Tnx回复您的代码运行良好。这是我的代码中的一个错误。真棒代码它节省了我的时间很多.. –