3D触控快捷键:加载其他网址

Ric*_*ard 6 ios swift

我已经实现了三个3D触摸动作,让它们命名app.touch1,app.touch2然后app.touch3.

这是我AppDelegate文件中的代码:

func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
    if(shortcutItem.type == "app.touch1"){
        MyVariables.url = "https://google.de/";
    } else if(shortcutItem.type == "app.touch2") {
        MyVariables.url = "https://yahoo.de/";
    } else if(shortcutItem.type == "app.touch3") {
        MyVariables.url = "https://bing.de/";
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我MyVariables现在的课程:

struct MyVariables {
    static var url = "https://test.de/"
}
Run Code Online (Sandbox Code Playgroud)

这是我ViewController班级的代码:

IBOutlet var containerView : UIView?
var webView: UIWebView?
var loadedURL: String?

override func prefersStatusBarHidden() -> Bool {
    return true
}

override func loadView() {
    super.loadView()

    self.webView = UIWebView()
    self.view = self.webView!
}

override func viewDidLoad() {
    super.viewDidLoad()
    load()
}

func load() {
    let requestURL = NSURL(string: MyVariables.url)
    let request = NSURLRequest(URL: requestURL!)
    self.webView!.loadRequest(request)
    loadedURL = MyVariables.url
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
Run Code Online (Sandbox Code Playgroud)

但是,它总是加载默认的url(https://test.de/),即使应用程序之前已关闭.我试着活动,如viewDidAppearviewWillAppear也,但没有奏效.

我认为这对于iOS开发人员来说非常简单 - 我试图从iOS开始并遇到这个问题:-(

der*_*ida 2

所以看起来这只是你的结构的问题?

我会尝试在 AppDelegate 中设置一个全局变量,然后在 ViewController 中使用它。

例如:

在AppDelegate中创建一个 url 变量。

在你的ViewController中使用:

func load() {
    let delegate = UIApplication.sharedApplication().delegate as AppDelegate
    let requestURL = NSURL(string: delegate.url)
    let request = NSURLRequest(URL: requestURL!)
    self.webView!.loadRequest(request)
    loadedURL = MyVariables.url
}
Run Code Online (Sandbox Code Playgroud)

尝试一下,应该可以。另一个想法是将其存储为 Singleton,请在此处查看:

https://github.com/hpique/SwiftSingleton

或者(这取决于您要存档的数据)-> 将其存储为 NSUserDefaults()