Xcode:他的第一个视图没有看到第二个视图所做的更改

Posted

技术标签:

【中文标题】Xcode:他的第一个视图没有看到第二个视图所做的更改【英文标题】:Xcode: he first view doesn't see changes made by the second one 【发布时间】:2012-12-16 11:21:55 【问题描述】:

我是 obj-c 编程的新手,尝试在两个视图之间更改值时遇到了一些麻烦。我正在使用 Xcode 4.5 和情节提要,在将更改的值从第二个视图传递到第一个视图时遇到了一些问题。

这是我的 2 个非常简单的视图(发布链接,因为我是新用户并且无法发布图片): https://www.dropbox.com/s/q4o2bblu1p57zod/img.png

这些视图分配给同一个类 (ViewController),我用来更改 2 个标签的代码是:

-(IBAction)setLabel:(id)sender

    if (myTextField.text.length != 0) 
        myLabel1.text = myTextField.text;
        myLabel2.text = myTextField.text;
    

问题是Label1正确地改变了它的文本,但与Label2没有任何关系!它不想改变...

我想我正在尝试做一些可以用其他方式制作的东西......你能告诉我它是否正确吗?

【问题讨论】:

创建一个自定义委托 - 它们非常容易做到并在对象之间创建递归关系 【参考方案1】:

您需要使用 Protocol-Delegate 方法来更新 First view 中的内容。

我建议你访问这个sample link。

【讨论】:

【参考方案2】:

您的两个视图控制器可能属于同一类,但它们在运行时将是不同的对象。您在它们之间有一个 segue,当它执行时,将创建一个新实例。由于第二个实例的“label2”未显示在其屏幕上,因此您的分配不会产生可见的变化。

【讨论】:

以上是关于Xcode:他的第一个视图没有看到第二个视图所做的更改的主要内容,如果未能解决你的问题,请参考以下文章

如何从一个 XIB 中的不同 UIViewController 文件控制第二个 UIView(子视图)

视图之间的 Xcode HTTP GET REQUEST

从导航栏下的第二个视图

Swift - 分组样式表视图设计

为啥我的第二个视图在转换后没有加载?

第二个视图上的表格视图单元格