【发布时间】:2016-02-04 16:36:22
【问题描述】:
我正在使用 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,然后将其加载到另一个具有 WebView 的 ViewController。
【问题讨论】:
-
试图实现这一点,但没有成功 系统给了你一个 URL,你没有用它做任何事情,或者从导航控制器堆栈中删除任何推送的视图控制器。您在哪里打开 URL,或者让导航控制器的初始视图控制器显示 PDF?
-
对不起。请查看更新。
-
stackoverflow.com/questions/8329999/… 这篇文章应该可以满足您的需求。
-
如果取消注释代码会怎样?代码是否对 URL 做了任何特定的事情?初始视图控制器应该如何知道要显示什么 PDF?
-
取消注释代码没有任何作用。我尝试过没有成功。
标签: swift uinavigationcontroller viewcontroller appdelegate