2016-02-14 72 views
0

我想要从AppDelegate呈现/推入嵌入在NavController中的VC。我以前使用这个代码,但不知何故它不工作了:从AppDelegate呈现嵌入在导航控制器中的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并能够使用闭合按钮返回到VC1

+0

为什么你想要通过应用程序来做这件事Delegate? – lukaivicev

+0

它是否嵌入在故事板上的导航控制器中? –

+0

@lukesIvi我应该提到它:用户与推送通知进行交互后的操作。 –

回答

1

在您呈现的ViewController的视图中添加一个UIButton。以下事件将由该按钮执行。你可以这样关闭你的导航控制器

@IBAction func dismissViewController(sender: AnyObject) { 

    self.navigationController.dismissViewControllerAnimated(false, completion:nil); 

} 
+0

谢谢您的耐心等待,让它与您的代码一起工作,并在一定程度上进行调整! –

+0

欢迎:) –

相关问题