ios - Swift:(预)从initialViewController加载UIWebView

标签 ios swift uiwebview instantiation nsurlrequest

我有两个 ViewController。初始 ViewController 是输入和存储 URL 的地方。此初始 ViewController 的 viewDidLoad 还应该在应用程序启动时开始加载第二个 ViewController 的 Web 内容。

第二个ViewController仅包含一个WebView。

当我启动应用程序时,成功调用了 secondaryViewController 中的 func loadWebView 。但是,一旦我单击 goButton 即可显示第二个ViewController。结果是空的。 (在第二个ViewController viewDidLoad中本地调用func loadWebView将成功加载网站。)

我认为我实例化 secondaryViewController 的方式以及调用它的方式做错了。我想我正在创建两个不同的 secondaryViewController 实例并调用空的实例。我很高兴收到任何指示。

编辑:我希望应用程序在初始 ViewController 打开后立即开始加载网站。不仅是当我访问 SecondViewController 时。

EDIT2:问题可能是初始调用 webView.loadRequest(request) 的数据没有保存到 webView-subview 中吗?第二次调用 webView 时出现空白,因为没有保存数据。有谁知道如何从 loadRequest 调用中保存/加载数据?

EDIT3:忘记 EDIT2。阅读解决方案正确答案下方的评论!

初始 View Controller :

var svc: UIViewController = UIViewController()

override func viewDidLoad() {
    loadWebView("https://www.google.com")
}

func loadWebView(URLString:String) {

    if let theRequestURL = NSURL (string: URLString) {
    let theRequest = NSURLRequest (URL: theRequestURL) 

    let vc: secondViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("secondViewController") as! secondViewController

        vc.loadWebView(theRequest)
        svc = vc
    } 
}

@IBAction func goButton(sender: AnyObject) {
        self.presentViewController(svc, animated: false, completion: nil)
}

第二个 View Controller :

class secondViewController: UIViewController, UIWebViewDelegate {
    @IBOutlet var webView: UIWebView! = UIWebView()

func loadWebView(request : NSURLRequest) {
    webView.loadRequest(request)
    }
}

最佳答案

我不太确定 secondViewController 的两个实例,但可能是 webView 的两个实例...假设您在 Storyboard 中定义了一个。实例化 IBOutlet 是异常的/错误的。

我建议将 loadWebView 变成类似 storeRequestURL 的东西。将请求保存到实例变量,然后在 secondViewControllerviewWillAppear(或者可能是 viewDidLoad)中调用 loadRequest

关于ios - Swift:(预)从initialViewController加载UIWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37116950/

相关文章:

ios - 在 Swift 中获取两个日期(月/日/小时/分钟/秒)之间的差异

iphone - 将图像添加到 Iphone 中的日历 View

objective-c - 子类 View 使用父类(super class) nib 文件

javascript - UIWebView 全局 javascript 变量不起作用

ios - 如何在 iOS 上显示 pdf

ios - iOS 上的 GMail 应用程序使用什么来编辑 HTML 电子邮件?

ios - 实现支持返回搜索结果的导航

ios - 如何从 Swift 确定设备类型? (OS X 或 iOS)

ios - 如何在 Swift 中获取 Sprite /纹理的原始文件名?

ios - 使用 EventKit 在 Swift 中检查并(可能)从日历中删除事件