Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Label.text未更新_Ios_Swift_Xcode_Swift3_Segue - Fatal编程技术网

Ios Label.text未更新

Ios Label.text未更新,ios,swift,xcode,swift3,segue,Ios,Swift,Xcode,Swift3,Segue,问题是label.text值每次在viewload中始终接受时都变为零。我不知道是什么问题 我在swift 3 Xcode 8中有这个代码,我有一个标签,如下所示 待稍后设置的标签 然后,我想在视图作为初始值加载时为标签指定一个值 这是一次视图加载,工作正常:) 稍后,我想将标签值更改为当前日期,我希望在用户移动到另一个视图时设置该日期,然后返回,因此我按照您的说法打开了该函数 下面是我如何调用函数的 来自secondViewController的函数调用 最后,我想将其设置为这些值 在

问题是label.text值每次在viewload中始终接受时都变为零。我不知道是什么问题

我在swift 3 Xcode 8中有这个代码,我有一个标签,如下所示

待稍后设置的标签

然后,我想在视图作为初始值加载时为标签指定一个值

这是一次视图加载,工作正常:)

稍后,我想将标签值更改为当前日期,我希望在用户移动到另一个视图时设置该日期,然后返回,因此我按照您的说法打开了该函数

下面是我如何调用函数的

来自secondViewController的函数调用

最后,我想将其设置为这些值


在firstviewcontroller中执行此操作,定义一个属性,例如:

var x : String?
现在,在secondview控制器中执行以下操作:

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

            let firstviewcontroller = segue.destination as! FirstViewController

            firstviewcontroller.x = "sample value"
          // sample value will be displayed on the firstview controller when u move from secondviewcontroller to firstviewcontroller on the label
}
现在,在firstviewcontroller中,在
viewDidLoad()
方法中设置标签:

dateItem?.text = x

注意:无需在
prepare
函数中创建FirstViewController的另一个实例,因为UIViewController
的内置函数覆盖func prepare(对于segue:UIStoryboardSegue,sender:Any?
负责从一个视图控制器切换到另一个视图控制器,您只需比较标识符

问题在于准备继续。使用segue.destination获得对firstViewController的引用后,无需执行以下操作
s=FirstViewController()
,这样您就创建了一个新实例,而不是使用在该过程中实际初始化的实例,请使用
firstController.calcPray()
[3]:“”[4]:复制您的代码并粘贴它,而不是图像。您在哪里调用
CalcRay
?我在SecondViewController功能中调用CalcRay准备以冗长乞讨消息为特征的连续标题和问题只需为志愿者创建工作即可。请保持简洁,避免请求帮助。即使我没有将任何值传递给firstviewcontroller??对不起,我不知道你的意思是什么?你能解释一下你想问什么,说“不向firstviewcontroller传递任何值”吗?对不起,我的意思是,当用户离开secondviewcontroller时,我只是调用calcPray(),因此,创建新实例不会引起任何问题,因为label.text将设置为firstviewcontroller中生成的值。。。我希望现在很清楚,不,你错了。通过执行s=firstViewController(),您将可以访问s.label,而不是firstController.label。这是两件截然不同的事情。简单地说,firstController.label将被初始化并保存在内存中,并且一旦prepareforsegue方法完成,FirstViewController的“s”实例也将被删除。您永远不能在prepareforsegue中自己创建视图控制器引用,否则swift开发人员将不会提供segue.destination方法,想想看!我做了你的解决方案。。它看起来确实正确并且可以理解,但是又出现了另一个错误:)Thread1:SIGABRT,AppDelegate中显示的错误。。我从来没用过这个AppDelegate@Abdullah设置异常断点以获取致命错误的行:意外发现零崩溃。@vadian无法执行此操作不是专家:( help@Abdullah你重命名了你的插座还是什么?这就是我在另一个答案中想说的,我没有传递数据,我只是在调用一个函数…感谢@SamarthKejriwal的努力