swift – 由于spash屏幕或错误的控制器处于活动状态,避免丢失小
发布时间:2020-12-14 05:23:55 所属栏目:百科 来源:网络整理
导读:我有一个小部件通过NSURL和extensionContext调用其相应的应用程序来激活应用程序中的特定操作. 在AppDelegate的应用程序中:openURL:options:方法我有: func application(app: UIApplication,openURL url: NSURL,options: [String : AnyObject]) - Bool {
我有一个小部件通过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委托,标签栏控制器或您创建的一些其他特定类,并提供对标签控制器的引用. 它的工作是检查选项卡控制器的状态并在需要时显示正确的视图控制器,然后告诉该视图控制器开始某些操作. 拥有此逻辑的此类可以是观察您的通知的类,或者您可以直接传递消息,因为您的应用程序委托可能知道该实例或正在创建新实例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |