首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift 3故事板导航

Swift 3故事板导航
EN

Stack Overflow用户
提问于 2017-02-14 10:53:56
回答 3查看 367关注 0票数 0

我有一个名为LoginViewController.swift的文件中内置的登录页面

在用户登录后,我希望将它们发送到构建在TabBarController上的新情节提要中。

第2项(中间部分)链接到一个名为landingViewController.swift的文件,该文件包含:

代码语言:javascript
复制
import UIKit

class landingViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


}

在我的LoginViewController中,我想导航到函数的API部分中的新故事板,我已经创建了一个注释区域来向您展示。

代码语言:javascript
复制
//MARK: -API Request
func logintoUnicityLife(username:String , password:String){
    let params = ["username": username,
                  "password": password]

    print("login API called - \(params)")

    Alamofire.request(URL(string: "\(AppData.sharedData.APIUrl)/login")!,
                      method: .get,
                      parameters: params,
                      headers: AppData.sharedData.headerParam).validate().responseJSON(completionHandler: {(response) -> Void in
                        print("login API done - \(response.response?.statusCode)")

                        guard response.result.isSuccess else {
                            print("API fail: \(response.error.debugDescription)")
                            return
                        }
                        guard let value = response.result.value as? Dictionary<String, Any>,
                            let result = value["result"] as? Dictionary<String, String> else {
                                print(response)
                                return
                        }

                        self.userDetails = result
                        print(self.userDetails)

                        // =========== NAVIGATE TO THE NEW STORYBOARD HERE =============

                        // =========== CODE GOES ABOVE HERE ==================

                      })
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-14 11:04:21

代码语言:javascript
复制
func logintoUnicityLife(username:String , password:String){
        let params = ["username": username,
                      "password": password]

        print("login API called - \(params)")

        Alamofire.request(URL(string: "\(AppData.sharedData.APIUrl)/login")!,
                          method: .get,
                          parameters: params,
                          headers: AppData.sharedData.headerParam).validate().responseJSON(completionHandler: {(response) -> Void in
                            print("login API done - \(response.response?.statusCode)")

                            guard response.result.isSuccess else {
                                print("API fail: \(response.error.debugDescription)")
                                return
                            }
                            guard let value = response.result.value as? Dictionary<String, Any>,
                                let result = value["result"] as? Dictionary<String, String> else {
                                    print(response)
                                    return
                            }

                            self.userDetails = result
                            print(self.userDetails)

                            // Tabbarcontrolloer set as initial ViewController
                            let tabVC = UIStoryboard(name:"<Your Storyboard file name>", bundle:nil).instantiateInitialViewController()
                            (UIApplication.shared.delegate as? AppDelegate)?.window?.rootViewController = tabVC

                            // =========== NAVIGATE TO THE NEW STORYBOARD HERE =============

                            // =========== CODE GOES ABOVE HERE ==================

                          })
    }
票数 0
EN

Stack Overflow用户

发布于 2017-02-14 11:52:16

  1. 将第二个情节提要中的选项卡视图控制器设置为初始视图控制器
  2. 成功登录后,执行以下代码 设storyBoard =UIStoryboard(名称:“第二个”,bundle:nil) //第二个故事板名为第二个let tabVC = storyBoard.instantiateInitialViewController() (UIApplication.shared.delegate as?( AppDelegate)?.window?.rootViewController = tabVC

  1. 将情节提要id设置为第二个情节提要中的tabview控制器。
  2. 成功登录后,执行以下代码 设storyBoard =UIStoryboard(名称:“第二个”,bundle:nil)//第二个故事板名称作为第二个let tabVC =UIStoryboard " tabVc ") // tabVc选项卡视图控制器的故事板id被指定为tabVc (UIApplication.shared.delegate as?( AppDelegate)?.window?.rootViewController = tabVC
票数 0
EN

Stack Overflow用户

发布于 2017-02-14 12:11:16

一种方法是在Login故事板中创建一个故事板引用,在LoginViewController和故事板引用之间创建一个segue,给它一个"fromLoadingToMain“的标识符,如下所示:

然后在您的代码中,只需做:

代码语言:javascript
复制
// =========== NAVIGATE TO THE NEW STORYBOARD HERE =============
self.performSegue(withIdentifier: "fromLoadingToMain", sender: nil)
// =========== CODE GOES ABOVE HERE ==================
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42224289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档