我有一个导航 Controller 。在我的第二个 View 中,我想要一个按钮,当它被点击时,转到第一个 viewController 并在那里设置一个文本。
所以,在我的按钮 (secondView) 中,我有:
SearchViewController *svc=[[SearchViewController alloc]init];
[svc setValueMethod:@"randomString"];
[self.navigationController popToRootViewControllerAnimated:YES];
在我的第一个 View 中:
-(void)setValueMethod:(NSString *)myPassedString
{
_searchField.text = myPassedString;
}
但是 _searchField 现在为空。但是当你第一次进入它的应用程序时,好的,你可以使 _searchField.text = @"aString";那个工作。但是从 secondView 弹出后,它变成了 null!
有人可以帮我吗?
最佳答案
原因是您通过以下行创建了一个名为 svc 的 SearchViewController 新实例:SearchViewController *svc=[[SearchViewController alloc]init];。但是这个 svc 实例与 SearchViewController 的原始实例(您进入应用程序时首先看到的那个)不同。
您需要使用委托(delegate)协议(protocol)。它用于这种类型的场景。这SO有代码示例。
关于ios - Xcode - UITextField 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11212798/