好的,希望我能够清楚地解释清楚,以便做出回应。
我创建了一些不同的场景,场景1,2,3。每个场景都有自己的(子)类,以及它自己的.h和.m文件。
我正在添加第四个场景,我们称之为场景4.我想从场景2(segue工作)中找到它。
我的问题:
我可以让场景4由场景2的Viewcontroller驱动,假设我告诉场景4有场景2类吗?我在场景2中添加了一个名为tempLabel的插座标签,在某个动作后,我可以通过self.tempLabel.text显示“foo”这样有效,没问题。
self.tempLabel.text = @“foo”;
到目前为止,这么好。我想要做的是重新定位这个标签,使它出现在场景4而不是场景2.我可以剪切并粘贴它,或者在场景4中从头开始创建它,我确保标签有一个插座(在场景2中使用填充黑色圆圈的阴沟区域中.ViewController .h当我将鼠标悬停在黑色圆圈上时,标签为hilights。
我的问题:当我这样做时,似乎一切都是连接属性。但是当我在场景2中并且我触发了设计为在场景4中驻留的名为tempLabel的对象中显示“foo”的动作时,当我从场景2到场景4时,它不存在。标签是空的。< / p>
换句话说,如果我在场景2上找到tempLabel,我在场景2的viewController .m文件中的动作将使“foo”出现在对象tempLabel中。但是,当我将该标签重新定位到另一个场景(场景4)时,我想到新场景显示内部带有“foo”字样的标签,我得到的只是空白标签。
对我来说,似乎动作正在做它的事情,但是当场景4在segue之后加载时,我期望在那里看到的,不存在。数据是否不能在后续生存中存活下来?
我希望这是有道理的。
编辑:
好的,所以我放心了那个场景4(它上面没有任何东西,只有一个标签 - 只是为了让事情变得简单,直到我弄明白)可以由场景2的控制器驱动(也就是说,场景2的.h和.m文件)。这是我迷路的地方:我可以在场景2中实例化这个标签,并在场景2中“物理”定位这个标签,或者我可以在场景2中实例化这个标签,但是在场景4中物理定位。我已经习惯了在我正在工作的同一场景中实例化标签,因此这在我的新领域。如果我在场景2中放置标签(使用故事板),我有一个改变tempLabel.text = @“foo”的动作;它像我期望的那样工作。我单击一个按钮(动作),该按钮执行它应该执行的操作,即将字符串“foo”写入标签。但是,我要做的是让用户点击按钮,当他/她这样做时,如果标签位于场景4中,它会将字符串“foo”写入标签。但是当然,如果用户是观看场景2,他/她不知道这已经发生,除非他进入场景4,此时他将会遇到包含字符串“foo”的单个标签。当我尝试这样做时,我在触发动作后发出声音,但是当我到达场景4时,标签是空白的。这是因为segue本身擦拭标签干净吗?