我有一个小部件通过NSURL和extensionContext调用其相应的应用程序来激活应用程序中的特定操作.
在AppDelegate的应用程序中:openURL:options:方法我有:
func application(app: UIApplication,openURL url: NSURL,options: [String : AnyObject]) -> Bool { if let path = url.path{ if path.containsString("action"){ NSNotificationCenter.defaultCenter().postNotificationName(MyViewController.purchasmyActionKey,object: nil) } } return true }
当应用程序打开并且MyViewController处于活动状态时,操作将完美执行.但是,如果我在应用程序中的另一个视图控制器上或应用程序已关闭,则不会执行该操作.
有人能让我走上正轨吗?
注意:我的主控制器是一个带有各种子视图控制器的UITabBarController.一些是UINavigationControllers(包含网格控制器),另一个是ListViewController.
最简单的选项是显示视图控制器,它将其作为模式控制器上的模态处理.这通常是最不复杂和最干净的,因为用户可以在完成此交互之前轻松返回到他们正在做的事情.
如果由于某种原因你不能这样做:
您需要指定某个类负责确保显示正确的视图控制器并告知在看到通知时操作请求.这可以是直接的app委托,标签栏控制器或您创建的一些其他特定类,并提供对标签控制器的引用.
它的工作是检查选项卡控制器的状态并在需要时显示正确的视图控制器,然后告诉该视图控制器开始某些操作.
拥有此逻辑的此类可以是观察您的通知的类,或者您可以直接传递消息,因为您的应用程序委托可能知道该实例或正在创建新实例.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。