0
다른 뷰 컨트롤러에서 재사용해야하는 내 앱에서 싱글 톤을 만드는 것으로 시작합니다.싱글 톤을 연락처에서 제외시키기 Selector
나는 사용자의 연락처에 액세스하여 SMS를 통해 메시지를 보낼 수있는 방법을 사용합니다. 이것은 완벽하게 작동합니다. 이제 코드를 다른 viewController에서 액세스 할 수있는 싱글 톤으로 변환하려고합니다.
이것은 지금까지 제 코드입니다. 나는 어떻게 시작해야할지 모르겠다. 모든 권장 사항을 많이 주시면 감사하겠습니다.
SendSMS.h
#import <UIKit/UIKit.h>
#import "SMContactsSelector.h"
#import <MessageUI/MessageUI.h>
@interface SendSMS : UIViewController
- (IBAction)button:(id)sender;
@end
SendSMS.m는
#import "SendSMS.h"
@interface SendSMS()
@end
@implementation SendSMS
NSMutableArray *phoneArray;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)viewDidAppear:(BOOL)animated {
NSString *phoneString = [[NSUserDefaults standardUserDefaults]
stringForKey:@"phoneString"];
if (!([phoneString isEqualToString:@""])) {
[[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"phoneString"];
[[NSUserDefaults standardUserDefaults] synchronize];
//check if the device can send text messages
if(![MFMessageComposeViewController canSendText]) {
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Your device cannot send text messages" delegate:nil
cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
return;
}
//set receipients
NSArray *recipients = [phoneString componentsSeparatedByString:@","];
//set message text
NSString *message = @"message";
MFMessageComposeViewController *messageController =
[[MFMessageComposeViewController alloc] init];
messageController.messageComposeDelegate = self;
[messageController setRecipients:recipients];
[messageController setBody:message];
[self presentViewController:messageController animated:YES completion:nil];
}
}
- (IBAction)button:(id)sender {
SMContactsSelector *controller = [[SMContactsSelector alloc]
initWithNibName:@"SMContactsSelector" bundle:nil];
controller.delegate = self;
controller.requestData = DATA_CONTACT_TELEPHONE; // DATA_CONTACT_ID
DATA_CONTACT_EMAIL , DATA_CONTACT_TELEPHONE
controller.showModal = YES; //Mandatory: YES or NO
controller.showCheckButton = YES; //Mandatory: YES or NO
[self presentModalViewController:controller animated:YES];
}
- (void)numberOfRowsSelected:(NSInteger)numberRows withData:(NSArray *)data
andDataType:(DATA_CONTACT)type {
if (type == DATA_CONTACT_TELEPHONE) {
for (int i = 0; i < [data count]; i++) {
NSString *str = [data objectAtIndex:i];
str = [str reformatTelephone];
[phoneArray addObject:str];
NSString *phoneStringAppended1 = [[NSUserDefaults standardUserDefaults]
stringForKey:@"phoneString"];
NSString *phoneStringAppended2 = [phoneStringAppended1
stringByAppendingString: str];
NSString *phoneString = [phoneStringAppended2 stringByAppendingString:@",
"];
[[NSUserDefaults standardUserDefaults] setObject:phoneString
forKey:@"phoneString"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}
}
#pragma mark - MFMailComposeViewControllerDelegate methods
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult) result {
switch (result) {
case MessageComposeResultCancelled: break;
case MessageComposeResultFailed: break;
case MessageComposeResultSent: break;
default: break;
}
[self dismissViewControllerAnimated:YES completion:nil];
}
@end