我试图想要从AppDelegate呈现/推送嵌入在NavController中的VC。我之前使用过这段代码,但不知怎的,它已不再使用了:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let VC = storyboard.instantiateViewControllerWithIdentifier("PendingRequest") as! PendingRequestVC
let navController = UINavigationController.self(rootViewController: VC)
let rootViewController = UIApplication.sharedApplication().keyWindow!.rootViewController
rootViewController!.presentViewController(navController, animated: false, completion: nil)
其他代码打开我想要的VC但不在导航窗格中。任何指导都将不胜感激。
用户与推送通知交互后,从AppDelegate调用。
编辑: 我可以使用以下代码显示正确的VC:
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
if let viewController = mainStoryboard.instantiateViewControllerWithIdentifier("PendingNavController") as? UINavigationController {
if let yourViewController = viewController.topViewController as? PendingRequestVC {
//yourViewController.getRequestdata()
}
UIApplication.sharedApplication().keyWindow!.rootViewController = viewController;
}
但是这段代码不允许我使用NavBar上的“关闭”按钮返回。 我的结构如下:
TabController - > NavController1 - > VC1 - > NavController1a - > VC1a 我试图访问VC1a并能够使用Closed按钮返回VC1
答案 0 :(得分:1)
在您呈现的ViewController视图中添加UIButton。以下事件将由该按钮执行。您可以通过这种方式关闭导航控制器
@IBAction func dismissViewController(sender: AnyObject) {
self.navigationController.dismissViewControllerAnimated(false, completion:nil);
}