从TextField显示TableView并传递数据

时间:2015-01-11 22:45:44

标签: uitableview textfield

我正在为IPad学习Xcode和编程。我有一个TableView,可以使用按钮显示它。当我点击TextField时,我宁愿显示它。如果我解雇第一响应者,键盘,那我怎么显示tableView?我还没有找到适合的例子。任何方向都会有所帮助。

1 个答案:

答案 0 :(得分:0)

这很简单

只需在UItextField委托方法中创建你的tableview.But返回No,它永远不会显示键盘并在那里写你的tableview代码。

这里你必须使用用户定义的代理。

 //firstViewController
    ***********************
    @interface ViewController ()<UITextFieldDelegate,send>
    {
        UITextField *textField;
    }

    @end

    @implementation ViewController

    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.

        textField=[[UITextField alloc]initWithFrame:CGRectMake(20, 20, 160, 60)];

        textField.delegate=self;

        textField.backgroundColor=[UIColor greenColor];

        [self.view addSubview:textField];
    }

    -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{


        TableViewController *table=[[TableViewController alloc]initWithNibName:@"TableViewController" bundle:nil];
        table.delegate=self;
        [self presentViewController:table animated:YES completion:nil];

        return NO;
    }

    -(void)clickedValue:(NSString *)name
    {
        textField.text=name;
    }

    //secondcontroller
    *********************
    in.h


@protocol send <NSObject>
@required
-(void)clickedValue:(NSString *)name;

@end
@interface........
@property (nonatomic, retain) id<send> delegate;
.m
******
    @interface TableViewController ()
    {
        NSArray *arr;
    }

    @end

    @implementation TableViewController

    - (void)viewDidLoad
    {
        [super viewDidLoad];

        arr=[[NSArray alloc]initWithObjects:@"murali",@"mohan",nil];
    }

    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }



    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    {

        return 1;
    }

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {

        return arr.count;
    }


    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *CellIdentifier = @"Cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        if(cell == nil)
        {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        }

        cell.textLabel.text=[arr objectAtIndex:indexPath.row];

        return cell;
    }




    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {

        [self.delegate clickedValue:[arr objectAtIndex:indexPath.row]];
        [self dismissViewControllerAnimated:YES completion:nil];;

    }