gpt4 book ai didi

ios - 使用 CoreData/NSFetchedResultsController 使用来自 PrepareForSegue 的字符串填充 UISearchBar

转载 作者:行者123 更新时间:2023-11-29 03:11:32 25 4
gpt4 key购买 nike

我有一个简单的应用程序,它是一个表格 View (TV1),由用户点击导航栏中的加号按钮填充。用户将进入“添加条目”屏幕,其中点击“名称”文本字段将显示另一个 TableView (TV2),供用户添加现有条目、搜索现有条目或添加新条目。这非常有效,委托(delegate)确保我在新 TableView (TV2) 中选择的内容填充名称文本字段。

我想要实现的也是另一种方式;如果用户已经填充了名称文本字段并单击它来调出 TV2,我希望搜索栏已经填充了传递的字符串,同时确保搜索仍然有效。

例如,如果我有 John 的 nameTextField,当我单击 nameTextField 并进入 TV2 时,我希望 searchBar.text 说 John,而且现在搜索只显示 John 的条目名字,就像我开始输入约翰这个名字一样。

我正在使用核心数据和 NSFetchedResultsController。

在添加条目的 prepaeForSegue 中,我正在这样做:

if ([self.nameTextField.text length] > 0)
{
[envylopeNameTextFieldTableViewController setSelectedName:self.nameTextField.text];
}

在TV2中,setSelectedName方法是:

- (void)setSelectedName:(NSString *)selectedName
{
_selectedName = selectedName;
self.nameAddSearchBar.text = selectedName;
[self searchBar:self.nameAddSearchBar textDidChange:selectedName];
}

最后一行是我的一个尝试,因为当我开始搜索时会调用该方法,所以我想我可以调用它。我在没有它的情况下尝试了它,并使用 self.nameAddSearchBar.text = self.selectedName 和 _selectedName ,什么也没有; searchBar 不会被填充。

通过断点,我可以看到 selectedName = John 和 _selectedName = John,但 self.nameAddSearchBar.text = nil。

我可以想象我还差一两行代码,但我只是不确定如何继续。

任何帮助都会非常好。

谢谢,

最佳答案

尝试移动

self.nameAddSearchBar.text = selectedName 

从 setter (-setSelectedName) 到 TV2 中的 viewDidLoad。这里的问题是您试图在加载之前分配 nameAddSearchBar ( View )。

由于搜索栏是“ View ”的一部分,因此在“viewDidLoad”之前它才可用。您可以使用正确的值设置 selectedName 属性,然后在加载 View (在 viewDidLoad 中)后使用该值更新 View (search bar.txt)。

关于ios - 使用 CoreData/NSFetchedResultsController 使用来自 PrepareForSegue 的字符串填充 UISearchBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22199755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com