Fra*_*ock 5 iphone objective-c ios imessage imessage-extension
我有一个新的 iMessage 扩展项目,我尝试了两种构建导航堆栈的方法:
在我的故事板中,我将入口点设置为 UINavigationController,它以我的 MSMessagesAppViewController 作为根控制器。
或者我直接将我的 MSMessagesAppViewController 设置为我的故事板中的入口点。(没有拥有它的 UINavigationController)。
对于上面的场景 #1,导航控制器工作正常,我可以在堆栈上推送新屏幕。(除了整个导航栏隐藏在展开视图中,这是一个我仍然需要弄清楚的单独问题)。但是,使用此配置调用我的 MSMessagesAppViewController 的任何委托方法都没有。如:willTransitionToPresentationStyle didTransitionToPresentationStyle、willBecomeActiveWithConversation、didSelectMessage(这些都没有被调用)
对于上面的场景#2,确实会调用 MSMessagesAppViewController 方法。(因为 UINavigationController 不是 Storyboard 中的入口点)。
所以我的问题是:如何让 UINavigationController 位于我的 iMessage 扩展应用程序的根目录,以便我可以执行推送导航,但同时调用 MSMessagesAppViewController 的方法,如 Apple API 所述?
虽然它似乎没有记录,但看起来消息扩展希望入口点是MSMessagesAppViewController. 这些方法不是委托方法,它们是超类覆盖,因此无法将它们安排到其他任何地方。消息扩展系统可以处理您描述的情况,但显然无法处理。
我会尝试的是:
MSMessagesAppViewController。viewDidLoad)中创建一个UINavigationController并将其添加为子MSMessagesAppViewController类的子视图控制器。让它填满整个屏幕。现在——实际上——你的导航控制器是扩展的根。它不是真正的根,因为像这样的消息事件willTransitionToPresentationStyle仍然会通过MSMessagesAppViewController子类。但其他一切都从那里开始。它是 UI 和导航的根。
与此同时,向 Apple 提交增强请求可能会很好。认为消息扩展系统会检查导航控制器的根 VC 以查看它是否是正确的类是合理的,也许他们将来会添加它。
| 归档时间: |
|
| 查看次数: |
564 次 |
| 最近记录: |