Swift 后的 UITabBarController 注册移动到第 2 次或任何其他选项卡

标签: ios Swift
发布时间: 2017/3/5 16:53:28
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

在我的应用程序注册/登录后我想要将控件移动到特定选项卡的 UITabBarController 上一些条件。我登录或注册页面不是在 UITabBarController
这里是我用过我登录按钮的代码,但它只适用于标识符或 UITabBarController 。在我的例子我想移动到特定的标签,像 2 或 3 的选项卡。

@IBAction func btn_login(sender: AnyObject) {
        activityIndicator.progressBarDisplayer("Logging In", true, uiView: self.view)
        let timezone = GLib.timezone();
        let parameters = ["email": txtemail.text!,"password": txtpassword.text!,"time_zone": timezone]
        GLib.fetch("www.abc.com/test/auth/login", parameters: parameters, localkey: "user"){
            (isResponse) -> Void in
            if(isResponse == true)
            {
                self.activityIndicator.strLabel.text = "Personalizing Data";

                let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("some identifier") as UIViewController;
                self.presentViewController(viewController, animated: false, completion: nil);

              }else
              {
                self.show_alert("Attention Please!", message: self.GLib.error)
            }
}

我有看过很多帖子,但没有发现任何类似于我的机制。

我是新来 iOS 编程所以不知道如何找出这个问题。

解决方法 1:

使用 instantiateViewControllerWithIdentifier 是正确的路要走。然而,您需要添加的实际标识符,和 UIViewController 自定义类类型必须是实际的类。

我要去给你的是什么样子,一个粗略的例子,但它应该工作。无论哪种方式,您必须编辑您 instantiate 方法作为我在下面加以说明。

步骤︰

首先,你的storyboard中设置 viewController 的"storyboard ID"。喜欢这个:

enter image description here

然后添加修改此代码 instantiateViewControllerWithIdentifier 方法︰

   @IBAction func btn_login(sender: AnyObject) {
        activityIndicator.progressBarDisplayer("Logging In", true, uiView: self.view)
        let timezone = GLib.timezone();
        let parameters = ["email": txtemail.text!,"password": txtpassword.text!,"time_zone": timezone]
        GLib.fetch("www.abc.com/test/auth/login", parameters: parameters, localkey: "user"){
            (isResponse) -> Void in
            if(isResponse == true)
            {
                self.activityIndicator.strLabel.text = "Personalizing Data";


                let yourNewViewController: ViewControllerClassName = self.storyboard!.instantiateViewControllerWithIdentifier("yourStoryBoardID") as! ViewControllerYourePushingTo


                self.presentViewController(yourNewViewController, animated: true, completion: nil)


            }else
            {
                self.show_alert("Attention Please!", message: self.GLib.error)
            }
        }

作为一种类型,你需要实际使用 viewController 的名称。

我问一个类似的问题几个星期前︰ Swift ︰ 触发 TableViewCell,导致在另一个 ViewController UIWebView 中的链接

官方微信
官方QQ群
31647020