使用 Swift2 从 AppDelegate 重新打开 iOS 应用到指定的导航控制器

Reopen iOS app to specified navigation controller from AppDelegate using Swift2

我正在使用 Swift 进行 iOS 项目。我有一个嵌入在 UINavigationController 中的 ViewController。我的应用程序与 plist 中的 PDF 个文件相关联。用户可以在项目中打开通过电子邮件发送给他们的 PDF。我知道这涉及到:

func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {

    if url != "" {

        // Load from Mail App

        incomingFileTransfer = url

        incomingStatus = "Incoming"

        /*let rootViewController = self.window!.rootViewController
        let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let setViewController = mainStoryboard.instantiateViewControllerWithIdentifier("MainMenu") as! MainMenuViewController
        rootViewController?.navigationController?.popToViewController(setViewController, animated: false)*/

    } else {

        // Regular Load

        print("App Delegate: No incoming file")

        incomingFileTransfer = nil

    }  

    return true
} 

如果用户在应用程序的另一个区域,并且他们从 PDF 再次打开应用程序,应用程序将打开回到他们所在的区域。我希望它始终对第一个加载的 ViewController 打开。我查看了 here 并尝试在 AppDelegate 上面的部分中实现它,但没有成功。有人可以帮忙解决这个问题,尤其是在 Swift 吗?我不太擅长将 Objective-C 转换为 Swift。

我的 ViewController 有一个 Title 设置为 MainMenu:

ViewController 已将 UINavigationController 设置为 Initial View 且名称为 Main:

StoryboardUINavigationController Identity Inspector:

中有 Storyboard IDMain

更新:

对不起。 url 被分配给全局 Variable,然后加载到另一个 ViewController 中,后者具有 WebView.

按照@NSGangster 的建议查看 here,我进入我的 plist 并添加了以下内容:

现在我的应用重新打开时就像第一次打开一样。