zoukankan      html  css  js  c++  java
  • 【swift学习笔记】一.页面转跳的条件判断和传值

      在转跳页面之前我们可能会判断一下是否有输入正确的数据,如下图所示,如果没有数据输入则弹出提示,不进行转跳。

    一:页面转跳

    1.第一个页面的上放上一个Label一个textfield和一个按钮

    2.在第二个窗体上放两个label和一个按钮,并指定一个ViewController

    3.创建Segue连接两个窗体,打开模式选择modal,并给Segue命名为"openView"

    3.页面1 中创建输入文本框的引用和按钮的点击Action

    在Action里判断文本是否有数据,如果没有则弹出提示,如果有则打开新窗体

    @IBAction func passNameToView(sender: AnyObject) {
            guard let text = teName.text where !text.isEmpty else {
                
                let title = "Warning"
                let message = "please enter name!"
                let okText = "Ok"
                
                let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
                let okButton = UIAlertAction(title: okText, style: .Cancel, handler: nil)
                alert.addAction(okButton)
                presentViewController(alert, animated: true, completion: nil)
                
                return;
            }
            
            self.performSegueWithIdentifier("openView", sender: self)
            
            // or  if let text = teName.text where !text.isEmpty
        }

    这样就可以打开新窗体了。

    4.从新窗体返回原窗体

    页面2中的按钮建立一个Action代码如下

        @IBAction func backToParent(sender: AnyObject) {
            self.dismissViewControllerAnimated(true, completion: nil)
        }

    二.页面传值

    1.在页面2中声明一个字符串变量用于接收传过来的信息和一个lable的引用,在加载完窗体后显示在label中

    @IBOutlet weak var receiveName: UILabel!
        
        var receivedStr: String = ""
        override func viewDidLoad() {
            super.viewDidLoad()
    
            // Do any additional setup after loading the view.
            
            receiveName.text = receivedStr
        }

    2.页面1 重写prepareForSegue方法 把值输入的值传递给页面2

     override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
            if segue.identifier == "openView" {
                if let secondView = segue.destinationViewController as? SecondViewController {
                    secondView.receivedStr = teName.text!
                }
            }
        }

    ok整个过程完毕。

    完整代码:判断条件页面转跳.zip

  • 相关阅读:
    Day8 类的继承
    Day7 访问权限
    javascript性能优化
    JavaScript 基础:Babel 转译 class 过程窥探
    HTML5之新增的元素和废除的元素 (声明:内容节选自《HTML 5从入门到精通》)
    谈起音视频,前端能做些什么
    Safari不能保存session的处理方法
    一篇关于BEM命名规范
    H5新人福音~零配置搭建现代化的前端工程
    2018年,最经典的26个JavaScript面试题和答案!
  • 原文地址:https://www.cnblogs.com/li-peng/p/5523533.html
Copyright © 2011-2022 走看看