我试图让我的应用自动导航到通知视图,该视图将显示发送给用户的通知。
简单地说,我有一系列UIViewController
个对象来定义登录过程,如果登录成功,它会链接到UITabViewController
。在UITabViewController
内附加了UIViewControllers
。
当用户点按通知横幅时,我希望屏幕显示第四个 UIViewController
。我暂时修补了这种方法,试图在用户点击通知时显示VC:
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
let rootViewController = window!.rootViewController as! UINavigationController //the rootVC in the storyboard
let welcomeVC = rootViewController.topViewController as! WelcomeVC //welcome page
let loginVC = welcomeVC... //welcomeVC has a segue to this
//after loginVC is the UITabViewController
//I want to show the 4th VC of the UITabViewController when user taps the notification
}
我担心这种做法不起作用。特别是,我还有处理2种不同场景的问题:
提前感谢您的建议!
答案 0 :(得分:0)
如果应用程序在内存中,则会调用您发布的方法。
如果应用程序不在内存中,则必须依赖方法application(_,didFinishLoadingWithOptions)
。在launchOptions
中,您可以检查密钥UIApplicationLaunchOptionsLocalNotificationKey
以获取通知。
当应用程序在内存中时我通常会做的事情是我有一个导航控制器,调用popToRootViewController
没有动画,然后推动控制器只为最后一个设置动画。
如果您的子VC与segue链接,则无法在代码中使用它们(因为它们具有动画效果)。相反,您必须使用故事板instantiateViewControllerWithIdentifier
并在代码中推送/显示它们,并根据需要传递必要的属性(类似于您在prepareForSegue
中所做的操作)。