【问题标题】:Can I access a specific view from a WKWebView using a Segue?我可以使用 Segue 从 WKWebView 访问特定视图吗?
【发布时间】:2018-02-16 06:27:14
【问题描述】:

我有一个简单的应用程序,它使用 WKWebView 来显示网站。

该应用程序的目的是在 SQLite 数据库中记住用户凭据,避免每次在手机上浏览网站时都必须登录。 (尚未处理不良凭据)

这是在 AppDelegate 中处理的,它检查数据库是否有任何用户条目;

  • 如果确实如此,则应用会加载 webView

  • 如果没有,则显示登录视图

当用户在 web 视图中退出网站时,应用程序会删除 SQLite 数据库中的用户,这会迫使他在下次启动应用程序时访问登录视图。

问题是,当用户在 web 视图中退出网站时,我似乎无法导航到另一个视图。

我尝试将 segue 链接到登录视图,但似乎无法将 web 视图链接到另一个视图。

基本上,我该如何做 WKWebView ----> Login View Controller segue 关系?

【问题讨论】:

  • Fwiw,第二段太可怕了。 Apple 正是为此目的创建了 Keychain API。您永远不应该将用户凭据存储在 SQLite 数据库中。
  • 请注意,我会在此问题解决后尽快进行更改。

标签: ios swift segue wkwebview


【解决方案1】:

您需要从情节提要中获取登录视图控制器。

解决方案 1

let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

var loginViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
// segue to the loginViewControll however you want.

解决方案 2

在包含 WKWebView 的视图控制器和登录视图控制器之间从情节提要中进行转场。 然后在 WebView 视图控制器中调用 perfromSegue

performSegue(withIdentifier "WebViewToLoginSegue", sender: self)

【讨论】:

  • 谢谢!我的问题是我一直试图链接 WebView 而不是 Controller,导致 segue 无法出现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 2014-12-21
  • 2014-04-09
  • 2011-06-12
  • 2012-04-12
相关资源
最近更新 更多