Так что я смог получить текстовые поля для заполнения в виде представлений в моем представлении таблицы для входа. Теперь я хочу указать текстовое поле имени пользователя и текстовое поле пароля в моем действии для входа, однако действие не может найти переменные текстовых полей (имя пользователя и пароль). ПОЖАЛУЙСТА, ПОМОГИТЕ! Это меня заводило! Вот мой код.Table View Cell/UITextField/UIControlEvent
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *CellIdentifier = [self.menuItems objectAtIndex:indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (indexPath.row == 0) {
UITextField *username = [[UITextField alloc] init];
username.frame = CGRectMake(10, 6, 280, 30);
username.placeholder = @"Username";
cell.tag = 0;
[username addTarget:self action:@selector(login:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:username];
} else {
UITextField *password = [[UITextField alloc] init];
password.frame = CGRectMake(10, 6, 280, 30);
password.placeholder = @"Password";
cell.tag = 1;
[password addTarget:self action:@selector(login:) forControlEvents:UIControlEventTouchUpInside];
[password setSecureTextEntry:YES];
[cell.contentView addSubview:password];
}
return cell;
}
Как вы можете видеть, я создал текстовые поля, имя пользователя и пароль. Однако в действии переменные не ссылаются! В любое время появляется слово «имя пользователя» или «пароль», в нем говорится «использование неизвестного имени пользователя»/«использование незаявленного пароля идентификатора». Ваша помощь будет принята с благодарностью!
-(IBAction)login:(id)sender {
if ([username.text isEqualToString:@""] || [password.text isEqualToString:@""]) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Oops!" message:@"Please fill in all the fields!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
return;
}
{
NSString *strURL = [NSString stringWithFormat:@"http://www.mysite.com/myfile.php?username=%@&password=%@",username.text, password.text];
NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];
NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];
NSLog(@"%@", strResult);
NSString *cont11 = [NSString stringWithFormat:@"http://www.mysite.com/myfile.php?username=%@&password=%@",username.text, password.text];
NSData *cont12 = [NSData dataWithContentsOfURL:[NSURL URLWithString:cont11]];
NSString *cont13 = [[NSString alloc] initWithData:cont12 encoding:NSUTF8StringEncoding];
NSLog(@"%@", cont13);
if ([strResult isEqualToString:@"1"])
{
UIStoryboard *mainStoryboard=[UIStoryboard
storyboardWithName:@"Storyboard" bundle:nil];
AdminPanel *mainView=[mainStoryboard
instantiateViewControllerWithIdentifier:@"admin"];
mainView.modalTransitionStyle=UIModalTransitionStyleCoverVertical;
[self presentViewController:mainView animated:YES completion:nil];
}else
{
// invalid information
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Oops!" message:@"You must have entered something wrong! Try again!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
return;
}
}
}
Вы хотите ввести имя пользователя и пароль для получения значений имени пользователя и пароля ??? –
Отправителем будет textField, который закончил редактирование, поэтому вы можете заменить username.text на sender.text - для этого вам следует также изменить подпись метода на - (IBAction) login: (UITextField *) отправитель – rdelmar