使用 Swift2 从 AppDelegate 重新打开 iOS 应用程序到指定的导航控制器
Posted
技术标签:
【中文标题】使用 Swift2 从 AppDelegate 重新打开 iOS 应用程序到指定的导航控制器【英文标题】:Reopen iOS app to specified navigation controller from AppDelegate using Swift2 【发布时间】: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? 对不起。请查看更新。 ***.com/questions/8329999/… 这篇文章应该可以满足您的需求。 如果取消注释代码会怎样?代码是否对 URL 做了任何特定的事情?初始视图控制器应该如何知道要显示什么 PDF? 取消注释代码没有任何作用。我尝试过没有成功。 【参考方案1】:按照@NSGangster 的建议查看here,我进入我的plist
并添加了以下内容:
现在我的应用像第一次一样重新打开。
【讨论】:
以上是关于使用 Swift2 从 AppDelegate 重新打开 iOS 应用程序到指定的导航控制器的主要内容,如果未能解决你的问题,请参考以下文章
无法在 AppDelegate coredata,Swift 2 中使用(域,代码,userInfo)调用类型“NSError”的初始化程序
AppDelegate Touch3D Xcode - TabBar
PromiseKit 3 for Swift2 中的“when”是不是已重命名?