도우미 클래스를 만들었 MFMessageComposeViewController
으므로 뷰 컨트롤러 대신 MFMessageComposeViewController를 기본 클래스로 사용하여 클래스를 만들었습니다. 아래 코드는 다음과 같습니다.
SMSMessageController.h
#import <MessageUI/MessageUI.h>
NS_ASSUME_NONNULL_BEGIN
@interface SMSMessageController : MFMessageComposeViewController
@property (strong, nonatomic) NSString *messageBody;
@property (strong, nonatomic) NSString *receivingNumber;
@end
NS_ASSUME_NONNULL_END
SMSMessageController.m
#import "SMSMessageController.h"
@interface SMSMessageController ()<UINavigationControllerDelegate,MFMessageComposeViewControllerDelegate>
@end
@implementation MessageControllerKony
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.body = self.messageBody;
NSLog(@"SMS BODY%@", self.messageBody);
self.recipients = [NSMutableArray arrayWithObject: @"13123123"];
self.messageComposeDelegate = self;
}
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{
//test result
switch (result) {
case MessageComposeResultCancelled:
NSLog(@"Result: SMS sending canceled") ;
break;
//message was sent
case MessageComposeResultSent:
NSLog(@"Result: SMS sent");
break;
case MessageComposeResultFailed:
NSLog(@"Result: SMS sending failed");
break;
default:
break;
}
//dismiss view
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
이제 버튼 동작에 "ViewController B"라는 다른 컨트롤러에서이 컨트롤러를 표시하려고합니다. 이 컨트롤러의 값을의 messageBody
변수 로 전달하려고합니다 MessageControllerKony.h
. 버튼 동작은 다음과 같습니다.
- (IBAction)smsAction:(id)sender {
self.messageController = [[MessageControllerKony alloc]init];
self.messageController.messageBody = @"jfhjkhasfjhkwhfhdfjkjkfbhiehf";
[self presentViewController:self.messageController animated:YES completion:nil];
}
그러나 불행히도 MFMessageComposeViewController가 표시되면의 값 messageBody
은 null입니다. 이 시나리오에서 내가 잘못하고있는 곳. 내 변수가 MessageControllerKony.h
클래스에 전달되지 않는 이유는 무엇 입니까?
OK-서브 클래 싱 MFMessageComposeViewController
을 했으므로 클래스 에서 사용할 수있는 속성 / 메서드가 있습니다.
.h
파일 에는 다음이 필요하지 않습니다 .
//@property (strong, nonatomic) NSString *messageBody;
//@property (strong, nonatomic) NSString *receivingNumber;
다음 MFMessageComposeViewController
과 같이 사용자 정의를 호출 할 수 있습니다 .
self.messageController = [[MessageControllerKony alloc]init];
//self.messageController.messageBody = @"jfhjkhasfjhkwhfhdfjkjkfbhiehf";
[self.messageController setBody:@"jfhjkhasfjhkwhfhdfjkjkfbhiehf"];
[self.messageController setRecipients:[NSArray arrayWithObject: @"13123123"]];
[self presentViewController:self.messageController animated:YES completion:nil];
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다