iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了通过segue传递变量? Xcode 8 Swift 3大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

所以我正在制作一个闹钟.一个视图控制器是表视图.另一个视图控制器由带有提交按钮的UIDatePicker组成.目标是当用户单击提交按钮时,它会将日期保存在日期选择器上.除了保存日期之外,它还是表视图控制器的一个区域.我试图在单元格中显示保存为标签的时间. >这是我的DatePicker视图控制器的代码.我在函数之外定义了变量.然后当他们点击提交时,它应该更新值.但是当它通过segue时它不会更新它
所以我正在制作一个闹钟.一个视图控制器是表视图.另一个视图控制器由带有提交按钮的UIDatePicker组成.目标是当用户单击提交按钮时,它会将日期保存在日期选择器上.除了保存日期之外,它还是表视图控制器的一个区域.我试图在单元格中显示保存为标签的时间.

>这是我的DatePicker视图控制器的代码.我在函数之外定义了变量.然后当他们点击提交时,它应该更新值.但是当它通过segue时它不会更新它.

var myDate = "1:39 PM"




@IBACtion func submitDate(_ sender: AnyObject) {

   myDate = DateFormatter.localizedString(from: dateOutlet.date,dateStyle: DateFormatter.Style.none,timestyle: DateFormatter.Style.short)


}


override func prepare(for segue: UIStoryboardSegue,sender: Any?) {

    if segue.identifier == "save" {

        let toViewController = segue.desTination as! TableViewController

        toViewController.myDate = myDate



    }
}

>这是我的表视图控制器的代码.当我单击提交时,它不会将标签显示为在DatePicker中选择的时间.它显示“下午1点39分”.这是我最初定义的.

var myDate = "0"


override func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {



    let cell = Bundle.main.loadNibNamed("TableViewCell",owner: self,options: nil)?.first as! TableViewCell


    cell.textLabel?.text = myDate

    return cell



}

解决方法

除非您稍后要使用它,否则不要在源视图控制器中尝试声明myDate.

此外,如果您的submitDate函数中没有任何代码来呈现目标视图控制器,您可能不需要它,因为您设置的“保存”segue会自动处理.

在源视图控制器中

@IBACtion func submitDate(_ sender: AnyObject) {

   //don't need anything here - remove this function unless doing anything else


}


   override func prepare(for segue: UIStoryboardSegue,sender: Any?) {

    if segue.identifier == "save" {
        if let toViewController = segue.desTination as? TableViewController {
            toViewController.myDate = DateFormatter.localizedString(from: dateOutlet.date,timestyle: DateFormatter.Style.short)
        }
    }
}

在目标视图控制器中

var myDate: String!


override func tableView(_ tableView: UITableView,options: nil)?.first as! TableViewCell


    cell.textLabel?.text = myDate

    return cell



}

大佬总结

以上是大佬教程为你收集整理的通过segue传递变量? Xcode 8 Swift 3全部内容,希望文章能够帮你解决通过segue传递变量? Xcode 8 Swift 3所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。