Ios 如何使用segues

Ios 如何使用segues,ios,iphone,objective-c,xcode,uiviewcontroller,Ios,Iphone,Objective C,Xcode,Uiviewcontroller,我正在Xcode中创建一个应用程序,目前由导航控制器、表视图控制器和常规视图控制器组成 我正在使用故事板,并在表视图和常规视图控制器之间创建了一个分段。在导航栏中,我有一个按钮,我已将其拖动到情节提要中的视图控制器。当我单击按钮时,新的视图控制器将按预期方式查看。然后,我尝试从表视图控制器传递数据,请参见以下内容: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue iden

我正在Xcode中创建一个应用程序,目前由导航控制器、表视图控制器和常规视图控制器组成

我正在使用故事板,并在表视图和常规视图控制器之间创建了一个分段。在导航栏中,我有一个按钮,我已将其拖动到情节提要中的视图控制器。当我单击按钮时,新的视图控制器将按预期方式查看。然后,我尝试从表视图控制器传递数据,请参见以下内容:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"läggTill"])
    {
        // Get reference to the destination view controller
        AddPlayerViewController *apv = [segue destinationViewController];

        [apv.myTextField setText:@"hello"];

    }

}
segue标识符是“läggTill”,但if语句中的代码没有执行

两个问题:

这种方法有什么问题

这是使用故事板的最佳方法吗?我可以通过ViewWillEnglish传递数据吗


我可以使用segues将数据从视图控制器传递回表视图控制器吗?

prepareforsgue:sender:
中传递数据是非常有意义的。我不建议在
视图中传递数据将消失
,因为它只会使数据变得凌乱,降低可读性,而且更难跟踪

我认为你的字符串比较不起作用!在控制台上为您的标识符字符串放置NSLog,请参阅。相比之下,我觉得它可能不喜欢“ä”这个角色

关于你的最后一个问题,正如Gabriel.Massana指出的,为了传递回数据,使用委托是一种方法

注1:我注意到的另一个问题是可能的打字错误,您可能有“apv”和“avc”


注意2:另一个失败的原因是在目标控制器上调用
viewDidLoad
之前设置了文本字段。我建议将其作为字符串传递,并在目的地的
viewDidLoad
中,将文本设置为文本字段。

能否尝试更改segue标识符,使其在代码和情节提要中仅使用英文字符。情节提要中的segue标识符具有相同的名称?我是否可以使用segues将数据从视图控制器传回表视图控制器?使用代理完成此操作。您的myTextField是否位于AddPlayerViewController上?在您发布的代码中,您获得了对目标视图控制器的引用,并将其称为apv,但是否在avc上设置了myTextField?这只是一个输入错误,还是设置了完全不同的内容?好吧,我在这里更改了代码示例。我在程序中使用的是正确的。@我在你的故事板中单击你的序列,并仔细检查标识符。看看它是否与您的字符串匹配。谢谢,这篇文章非常有用!似乎我命名了segue“läggTIll”,而不是“läggTIll”。我在使用NSLog时看到了它。我很高兴能帮上忙:)编码快乐!