我正在基于谷歌帐户授权我的应用程序。我有一个设置视图,其中包含以下代码:
import UIKit
import Google
class Settings: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let background = CAGradientLayer().greenBlue()
background.frame = self.view.bounds
self.view.layer.insertSublayer(background, atIndex: 0)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func didTapSignOut(sender: AnyObject) {
GIDSignIn.sharedInstance().signOut()
}
}
在gui我有一个按钮。当用户单击它时,会话将被此调用销毁:GIDSignIn.sharedInstance().signOut()
。但是,到目前为止,没有其他任何事情发生,用户仍在设置菜单中。我想将他转移到包含登录表单的ViewController。
我尝试添加以下代码:
let sb = UIStoryboard(name: "Main", bundle: nil)
if let tabBarVC = sb.instantiateViewControllerWithIdentifier("TabController") as? TabController {
window!.rootViewController = tabBarVC
}
但是window
尚未解决。我该怎么办?
答案 0 :(得分:1)
在故事板中,从"设置"创建一个segue。 ViewController到" TabController"并将其标识符设置为" settingsToTabController"。然后使用self.performSegueWithIdentifier("settingsToTabController", sender: self)
函数中的代码didTapSignOut
。我没有这方面的经验,所以这可能不是最好的方法,但它对我来说很好。
答案 1 :(得分:1)
如果您想使用window
变量发布原始方式,则需要从代理中获取该窗口实例的实例。您可以通过执行window = UIApplication.sharedApplication().delegate?.window!
,然后像上面的代码中那样设置UIStoryboard
来获取它。现在,您的window
对象将无法解析。