#ios #mfmailcomposeviewcontroller
#iOS #mfmailcomposeviewcontroller
Вопрос:
я добавил пользовательский интерфейс, и теперь мне интересно, как бы я добавил состояние в электронное письмо, например, если оно включено, я хочу, чтобы в электронном письме было указано «включено». В настоящее время у меня есть это.
- (IBAction)sendtoStudentathome:(id)sender {
MFMailComposeViewController *mailContoller = [[MFMailComposeViewController alloc]init];
[mailContoller setMailComposeDelegate:self];
NSString *email = @"admin@blah.co.uk";
NSArray *emailArray = [[NSArray alloc]initWithObjects:email, nil];
NSString *message = [@[_NameofResident.text, _NameofStudent.text, _AppointmentTime.date, _NextAppointmentTime.date, _Confirmed.text, myswitch]componentsJoinedByString: @"n"];
[mailContoller setMessageBody:message isHTML:NO];
[mailContoller setToRecipients:emailArray];
[mailContoller setSubject:@"Feedback"];
[self presentViewController:mailContoller animated:YES completion:nil];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[[self NameofResident] resignFirstResponder];
}
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissViewControllerAnimated:YES completion:nil];
}
в сообщении у меня есть текстовые поля, которые отлично добавляются в электронное письмо, единственное, что не добавляется правильно, — это UISwitch, помеченный как myswitch.
заранее спасибо.
Ответ №1:
Пожалуйста, обратитесь к приведенному ниже коду, создайте одно свойство NSString, изначально установите для его текста значение «выкл», поскольку начальное состояние переключателя выключено, и с помощью состояния переключателя измените текст.
@property (nonatomic, retain) NSString *strOnOff;
UISwitch *onoff = [[UISwitch alloc] initWithFrame: CGRectZero];
onoff.frame = CGRectMake(0,100,100,50);
strOnOff = @"off";
[onoff addTarget: self action: @selector(flip:) forControlEvents:UIControlEventValueChanged];
// Set the desired frame location of onoff here
[self addSubview: onoff];
-(void)gototest:(UIButton*)sender
{
MFMailComposeViewController *mailContoller = [[MFMailComposeViewController alloc]init];
[mailContoller setMailComposeDelegate:self];
NSString *email = @"admin@blah.co.uk";
NSArray *emailArray = [[NSArray alloc]initWithObjects:email, nil];
NSString *message = [NSString stringWithFormat:@"%@",strOnOff];
[mailContoller setMessageBody:message isHTML:NO];
[mailContoller setToRecipients:emailArray];
[mailContoller setSubject:@"Feedback"];
[delegate presentViewController:mailContoller animated:YES completion:nil];
}
- (void)flip:(id)sender {
if (onoff.on)
{
strOnOff = @"On";
}
else
{
strOnOff = @"Off";
}
}
Комментарии:
1. есть ли способ упростить его, т.Е. Я хочу, чтобы пользовательский интерфейс включался и выключался в ярлыке, и в зависимости от того, в каком состоянии его набор в этом ярлыке добавляется в почтовый композитор?
2. @user3725924 я уже добавил текст состояния пользовательского интерфейса в mail composer, пожалуйста, проверьте мой код. При нажатии на кнопку, которая показывает MFMailComposeViewController, я добавил «strOnOff» в текст сообщения mail composer, который является текстом пользовательского интерфейса.
Ответ №2:
Вам нужно будет создать строку, основанную на том, что UISwitch включен / ВЫКЛЮЧЕН, а затем использовать эту строку для передачи вашего сообщения.
if ([myswitch isOn]) {
NSLog(@"its on!");
} else {
NSLog(@"its off!");
}
Комментарии:
1. нет, в общем, при использовании только myswitch, когда я добавляю в этот код, ничего не происходит.
2. @user3725924 Вы добавляете элемент управления UISwitch в NSString, из-за этого вы получаете эту ошибку. Используйте мой подход и добавьте строку, а не UISwitch, в строку вашего сообщения.
3.есть ли способ упростить его, т.Е. Я хочу, чтобы пользовательский интерфейс включался и выключался в ярлыке, и в зависимости от того, в каком состоянии его набор в этом ярлыке добавляется в почтовый композитор?