加载UItableView以响应uitextfield

时间:2013-12-05 09:25:57

标签: ios json afnetworking

我正在开发一个从Mysql数据库加载数据的应用程序。我有3个视图控制器,第一个带有文本字段来获取输入,第二个是主视图,然后是detailView控制器。

当用户在文本字段中输入数据时,它在MySql数据库中搜索并在tableview中填充它。例如,当用户搜索食谱名称pizza时,在UITexField中,tableview必须仅填充披萨配方。 我列出了tableview中的所有食谱。我不知道如何使tableview响应UITextfield输入。

注意:我正在使用JSON序列化来快速加载,并且还可以详细查看图像中的图像。

2 个答案:

答案 0 :(得分:1)

您可以使用名为

的UITextField的委托方法
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return  YES;
}

当您在UITextField中将文本放入此方法后按下返回键时可以调用此方法,您可以调用一个方法,例如 - (void)fetchDataFromMysql

调用此方法后,您的代码将显示为

-(BOOL)textFieldShouldReturn:(UITextField *)textField
    {
        [self fetchDataFromMysql];
        [textField resignFirstResponder];
        return  YES;
    }

在fetchDataFromMysql方法中从Mysql商店中检索食谱的名称,该名称检索了用于在tableView中绘制食谱名称的数组中的食谱名称,说“recipeNameAry”。

因此,当用户输入搜索关键字例如披萨时,您将从Mysql获取披萨食谱,我们将这些食谱存储在“recipeNameAry”中,现在是时候更新食谱名称的tableView了,所以在此之后调用名为“reloadData”的方法来更新tableView,调用此方法后,您的代码看起来像

-(BOOL)textFieldShouldReturn:(UITextField *)textField
    {
        [self fetchDataFromMysql];
        [recipeNameTableView reloadData]; 
      //here recipeNameTableView is the name of your tableView.
        [textField resignFirstResponder];
        return  YES;
    }

它将使用属于披萨或其他任何东西的食谱更新你的tableView。

注意: - 首先将UITextFieldDelegate添加到您的.h文件中

#import <UIKit/UIKit.h>

@interface contact : UIViewController <UITableViewDataSource,UITableViewDelegate,UITextFieldDelegate>
{
}
@end

并在您的XIB中使用您的FileOwner将代理添加到您的UITextField

答案 1 :(得分:0)

要填充表格,您必须使用一个数组,其数据取决于第一个VC中通过文本字段的选择。因此,首先根据文本字段中的文本获取数组中的相应数据,然后使用该数组填充表。要随时更新表格,您可以使用

[tblname reloadData];