首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何动态切换屏幕

问如何动态切换屏幕
EN

Stack Overflow用户
提问于 2017-05-17 06:06:20
回答 1查看 197关注 0票数 0

我是IOS开发的新手.我来自android背景,我想在xcode中实现一个登录.当用户单击登录按钮,如果成功的话,对于first login,它应该转到OTP屏幕,当用户是注册的user...whenever,他/她点击登录按钮,它应该进入主屏幕.因此,基本上我希望login按钮切换到不同的屏幕,(没有导航)

例如,这个功能是登录完成时的。

代码语言:javascript
复制
func LoginDone()
{
    if (registeredUser()){
     //switch to OTP screen and also send The username to that .swift file
    }

    else{
     //switch to homescreen and send some data to that .swift file
    }     
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-17 06:27:13

您可以连接两个从登录屏幕。

在故事板中,将登录屏幕上的segue连接到OTP屏幕,从登录屏幕连接另一个segue到主屏幕。记住要开始从情节提要中的控制器中拖动,而不是从控制器中的任何视图中拖动。

在右面板中给每个segue一个标识符。我将调用第一个segue (登录-> OTP) "showOTP“和第二个segue (登录->主屏幕) "showHome”。

在综合框架声明中:

代码语言:javascript
复制
func LoginDone() {

    if (registeredUser()){
         performSegue(withIdentifier: "showOTP", sender: data)
    } else {
         performSegue(withIdentifier: "showHome", sender: data)
    }

}

这里我使用data作为sender参数。请用要发送给其他视图控制器的数据来替换它。

然后,重写prepareForSegue

代码语言:javascript
复制
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "showOTP" {
        let vc = segue.destination as! OTPController // Here replace OTPController with the class name of the OTP screen
        vc.username = sender as! String // username is a property in OTPController used to accept the value passed to it. If you don't have this, declare it.
    } else if segue.identifier == "showHome" {
        let vc = segue.destination as! HomeController // Here replace HomeController with the class name of the home screen
        vc.data = sender as! SomeType // data is a property in HomeController used to accept the value passed to it. If you don't have this, declare it.
        // replace SomeType with the type of data you are passing.
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44016811

复制
相关文章

相似问题

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