将表格单元格数据获取到 UI 按钮操作中?

Posted

技术标签:

【中文标题】将表格单元格数据获取到 UI 按钮操作中?【英文标题】:Get table cell data into UI button action? 【发布时间】:2015-05-20 09:00:01 【问题描述】:

我想通过tableView创建注册页面或登录页面。我创建了一个自定义动态单元格,并通过数组传递了值,然后在tableView 之外创建了按钮。我想在按钮操作中获取数据;例如,如果用户忘记填写一个字段,那么当按下按钮时,UIAlertView 应该显示消息以填写所有字段。我的问题是如何从自定义单元格的值表中获取数据到 Button 中?

【问题讨论】:

你是否使用过 Model 来存储数据并在 web 服务或数据库中发送数据...? 这是一个非常模糊的问题。您具体面临哪些问题?您应该有一个负责表格和按钮的控制器对象。这个控制器应该检查和标记警报。 @TheMall:对不起没有使用模型 【参考方案1】:

您可以创建自定义单元格,也可以通过标签管理 UITableviewCell。

在您的按钮点击事件中,逐个获取 Tableviewcells 并使用 in 单元格验证文本框值。 识别单元格 您可以检查单元格的类别和该单元格的标签。 请记住,在 cellForRowAtIndexPath 中,您必须将标签值分配给单元格。 喜欢,

[cell setTag:indexPath.row];

为了便于理解,您还可以定义枚举

typedef NS_ENUM(NSInteger, UserLogin) 

UserLoginName                          = 0,
UserLoginEmailId                       = 1,
UserLoginPassword                      = 2, ;

编辑:

#define TEXTFIELD_TAG 501

还在 cellForRowAtIndexPath 中为 UITextField 设置标签

    [cell.textField setTag:TEXTFIELD_TAG];

通过单元格循环从文本字段中获取文本值。

NSString *strUserName, *strEmailId, *strPassword;
// Loop upto total cells in tableview or counts of your datasource. depends on your implementation.
for (int i = 0; i < [tableView numberOfRowsInSection:0]; i++) 
    NSIndexPath *iPath = [NSIndexPath indexPathForRow:i inSection:0];
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:iPath];
    UserLogin loginState = cell.tag;
    switch (loginState) 
        case UserLoginName: 
            UITextField *textField = (UITextField *)[cell viewWithTag:TEXTFIELD_TAG];
            strUserName = [textField text];
            break;
        
        case UserLoginEmailId: 
            UITextField *textField = (UITextField *)[cell viewWithTag:TEXTFIELD_TAG];
            strEmailId = [textField text];
            break;
        
        case UserLoginPassword: 
            UITextField *textField = (UITextField *)[cell viewWithTag:TEXTFIELD_TAG];
            strPassword = [textField text];
            break;
        
        default: 
            break;
        
    

// 验证字符串值

有很多方法可以做到这一点。您可以选择最适合您的要求。

【讨论】:

【参考方案2】:

在移动开发中,您应该严格遵循 MVC。创建 User 的模型类并设置其属性,如用户名、密码。由于这些都将通过文本字段设置,因此您可以在 textFieldDidEndEditing 中填充您的用户对象。从您的用户对象中,您可以像这样将用户属性的文本添加到任何按钮。 ` // 用户类 @interface 用户:NSObject

@property (nonatomic,retain) NSString * user_fname;
@property (nonatomic,retain) NSString * user_lname;
@property (nonatomic,retain) NSString * user_email;
@property (nonatomic,retain) NSString * user_phone;
@property (nonatomic,retain) NSString * user_state;
@property (nonatomic,retain) NSString * user_city;
@property (nonatomic,retain) NSString * user_username;

@end

//Than create an object of user in your model class for sign-up or sign-in
User *user = [[User alloc] init]; // object created

// textfield delegate method
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField

  if (textField == usernameTF) 
  user.user_username = textField.text;

else if (textField == passwordTF) 
  user.user_password = textField.text;

  return YES;

`

你的用户对象中有数据,你可以在你想要的地方使用它的属性(需要数据)。

【讨论】:

以上是关于将表格单元格数据获取到 UI 按钮操作中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将EXCEL表格里一个单元格的数据拆分为两列

从自定义单元格 iPhone 中的 textField 获取值

表格视图单元格作为按钮

UI测试滑动删除表格视图单元格

在自定义表格视图单元格按钮操作中导航到另一个 Viewcontroller

单击按钮时将单元格动态添加到 UItableview