使用 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
:
Storyboard
在 UINavigationController
Identity Inspector
:
中有 Storyboard ID
的 Main
更新:
对不起。 url
被分配给全局 Variable
,然后加载到另一个 ViewController
中,后者具有 WebView
.
按照@NSGangster 的建议查看 here,我进入我的 plist
并添加了以下内容:
现在我的应用重新打开时就像第一次打开一样。
我正在使用 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
:
Storyboard
在 UINavigationController
Identity Inspector
:
Storyboard ID
的 Main
更新:
对不起。 url
被分配给全局 Variable
,然后加载到另一个 ViewController
中,后者具有 WebView
.
按照@NSGangster 的建议查看 here,我进入我的 plist
并添加了以下内容:
现在我的应用重新打开时就像第一次打开一样。