我想在单击登录按钮时获取 UITableviewCell 值。当用户按下登录按钮时,我想获取第一个单元格(电子邮件)和第二个单元格(密码)值。请帮我。
谢谢!谢莱什
我想在单击登录按钮时获取 UITableviewCell 值。当用户按下登录按钮时,我想获取第一个单元格(电子邮件)和第二个单元格(密码)值。请帮我。
谢谢!谢莱什
请尝试使用这个。我希望它可以帮助你。但是您应该将标签 1 分配给电子邮件,将 2 分配给密码文本字段。
-(IBAction)loginBtnPressed:(IBAction)sender
{
UITableViewCell *emailCell = [self.tblView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
UITableViewCell *passwordCell = [self.tblView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]] ;//pass
UITextField *emailTxtFLd = (UITextField *)[emailCell viewWithTag:1];
UITextField *passwordTxtFLd = (UITextField *)[passwordCell viewWithTag:2];
NSLog(@"Email : %@",emailTxtFLd.text);
NSLog(@"Password : %@",passwordTxtFLd.text);
}
您做一件事,当您将 textFiled 作为子视图添加到单元格时,将标签设置为 textFiled 就像给定的一样,
[textField setTag:-1];
而当您想从 textFiled 中获取文本时,请按照以下步骤操作。
// Getting email
CustomCell *tableCell = (CustomCell*)[myTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
UITextField *myTextField = (UITextField *)[tableCell viewWithTag:-1];
NSString *emailString = [myTextField text];
NSLog(@"~~~~ email: %@", emailString);
// Getting Password
tableCell = [myTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]];
myTextField = (UITextField *)[tableCell viewWithTag:-1];
NSString *passwordString = [myTextField text];
NSLog(@"~~~~ password: %@", passwordString);
希望对你有帮助 :)
由于两个单元格都是可见的,您可以通过以下方式请求它们:
UITableViewCell *emailCell = [myTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] //email
UITableViewCell *passwordCell = [myTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] //password
然后假设两个 UITableViewCell 在其标题中都有一个为 UILabel 公开的属性,您可以执行以下操作:
emailCell.myLabel.text //Value of the text in the cell
如果电子邮件和密码已分配,那么您可以像这样在您的 IIBAction 方法中直接访问它们
在您的 .h 文件中,将此添加到电子邮件和密码 UItextfield
@interface ViewController : UIViewController
{
UITextField *email;
UITextField *pass;
}
现在分配并将其添加到您的单元格中
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
email = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 320, 140)];
pass = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 320, 140)];
}
// Table View Data Source methods
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 2;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:nil];
if(cell==nil)
{
cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
if(indexPath.row==0)
{
[cell addSubview:email];
}
if(indexPath.row==1)
{
[cell addSubview:pass];
}
return cell;
}
现在在您的登录按钮上应用此 IBAction
- (IBAction)loginBtnTouchUpInside:(id)sender
{
NSLog(@"email ==== %@",email.text);
NSLog(@"pass ==== %@",pass.text);
NSString *strEmail = email.text;
NSString *strPassword = pass.text;
}
我希望这对你有用
-(void)ActivateLogin{
NSIndexPath *tmpIndexPath0 = [NSIndexPath indexPathForRow:0 inSection:0];
NSIndexPath *tmpIndexPath1 = [NSIndexPath indexPathForRow:1 inSection:0];
CustomCell *cellCopy0 =(CustomCell*) [tableViewName cellForRowAtIndexPath:tmpIndexPath0];
CustomCell *cellCopy1 =(CustomCell*) [tableViewName cellForRowAtIndexPath:tmpIndexPath1];
NSString *strEmail = @""; NSString *strPassword = @"";
strEmail = cellCopy0.tf.text;
strPassword = cellCopy1.tf.text;
if(![strEmail isEqualToString:@""] && ![strPassword isEqualToString:@""]){
... //Do what you want to do with the data
}
else{
//Alert user to enter credentials
}
}
最简单的方法是将 textField 值保存在 textField 委托中的单独字符串中,如下所示。
-(void)textFieldDidEndEditing:(UITextField *)textField{
stringEmail = textField.text;
}
并使用字符串值进行进一步处理。通过设置标签来实现。
谢谢你。