如何使用segues从UIView导航到UIView控制器?

时间:2017-12-31 01:39:33

标签: ios xcode swift3 xcode8.2

目标:使用上一个视图控制器中的“继续在此处”按钮显示视图控制器 - “欢迎页面” - “登录页面”。

我一直在 swift 3 Xcode 8.2 制作这个IOS应用程序,其中有一个以编程方式编码的登录页面,并希望转移到另一个名为Welcome页面的页面在故事板中的屏幕上有一个按钮。

Storyboard

我在将以编程方式编码的视图控制器连接到已在故事板上拖动的另一个包含按钮的视图控制器时遇到问题。我阅读了很多文章,并观看了许多关于以编程方式构建segue并使用它们的教程。还研究过使用协议解决我的问题,但由于某种原因,我遇到了错误。

我尝试过实现segues并给它们一个标识符然后呈现它们但是效果不好。关于我尝试的意思是我使用了不同的命令,如dismiss,present,show但没有查看下一个视图控制器上的按钮。以下是视图控制器类的功能 - “登录页面”,它必须在if语句之后移动到下一个视图控制器,以便它可以显示视图控制器 - 带有按钮的“登录页面”。

func handleLogin() {

    //Guard statements are useful for form validation
    guard let email = emailTextField.text, let password = passwordTextField.text
        else{
            print("Form not valid")
            return
    }

    Auth.auth().signIn(withEmail: email, password: password) { (user, error) in

        if error != nil{

            let alert = UIAlertController(title: "Sorry!", message: "Incorrect Credentials", preferredStyle: UIAlertControllerStyle.alert)
            alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))
            self.present(alert, animated: true, completion: nil)

            print(error)
            return
        }
        //Need to do the code here that can display the next view controller with the button
    }
}

请帮助。

1 个答案:

答案 0 :(得分:0)

要以编程方式划分到Storyboard视图,您需要实例化下一个视图控制器,然后如果使用pushViewController则调用navigationController,或者您可以使用self.present()。以下是使用navigationController的示例。

let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "NextViewController") as! NextViewController
    return controller
self.navigationController?.pushViewController(controller, animated: true)

请注意,您应该将故事板名称"Main"更改为您的故事板文件名。您还应将"NextViewController"更改为您的控制器故事板标识符(请参阅下图中的故事板ID)。另外,请确保在故事板中设置自定义类(请参阅下图中的自定义类)。

enter image description here