0

当用户按下按钮并在文本视图中键入时,ViewController.m 将组装电子邮件的正文。读取电子邮件的程序要求它是 XML 格式的。最终消息将如下所示:

NSString *sendMessage = [[NSString alloc]initWithFormat:@"<?xml version = \"1.0\" ?>\n<?commitcrmxml version = \"1.0\" ?>\n<CommitCRMTransaction>\n<ExternalApplicationName>Myapp</ExternalApplicationName>\n<SendResponseToEmail>err@mysite.com</SendResponseToEmail>\n<Password>pass</Password>\n<ReturnTransactionID>CRDOWV34HL53J543GENDYDH92BSF</ReturnTransactionID>\n<DataKind>TICKET</DataKind>\n<RecordData>\n<FLDTKTCARDID>%@</FLDTKTCARDID>\n<FLDTKTPROBLEM>%@\n%@\n%@\n%@\n%@\n%@</FLDTKTPROBLEM>\n<FLDTKTSTATUS>100</FLDTKTSTATUS>\n<FLDTKTKIND>General</FLDTKTKIND>\n<FLDTKTPRIORITY>10</FLDTKTPRIORITY>\n<FLDTKTSOURCE>Myapp</FLDTKTSOURCE>\n<FLDTKTSCHEDLENESTIM>60</FLDTKTSCHEDLENESTIM>\n<FLDTKTFORDISPATCH>N</FLDTKTFORDISPATCH>\n</RecordData>\n</CommitCRMTransaction>", cardID, tempStoreCompany, tempStoreLocation, tempStoreName, tempStorePhone, tempStoreEmail, descriptionMessage];

我的第二个实现文件 MailSend.m 将使用 (SKP)SMTP 发送消息。MailSend.m 需要访问 sendMessage 字符串(在 ViewController.m 中)中的文本,以便可以正确发送消息。

我怎样才能做到这一点?

4

2 回答 2

0

做一个属性

@property (nonatomic,retain) NSString *sendText;

在 .h 文件中并在 .m 文件中合成为

@synthesize sendText;

然后将其设置在您分配MailSend对象的位置,例如

MailSend *ms = [[MailSend alloc] init....];
ms.sendText = sendMessage;
[self present...];
//or self.navigationController pushVie...];

sendText并使用in访问此字符串MailSend.m

于 2012-07-16T16:10:30.023 回答
0

您可以通过三种简单的方法来执行此操作。


第一个是 Inder 如何说明您创建和设置属性的位置。


第二种方法是在您的 SecondViewController 中创建一个接受 NSString 作为 s 参数的方法。

SecondViewController.h

- (void)setTextBody:(NSString*)_body;

第二视图控制器.m

- (void)setTextBody:(NSString*)_body {
localBodyString = _body;
}

第一视图控制器.m

SecondViewController *second = [[SecondViewController alloc] init...];
[second setTextBody:sendMessage];
//Push the view controller

另一种方法是向接受 NSString 的 SecondViewController 类添加一个新的 init 方法。

SecondViewController.h

- (id)initWithString:(NSString*)_body;

第二视图控制器.m

- (id)initWithString:(NSString*)_body {
if (self)
 localBodyString = _body;
return self;
}

第一视图控制器.m

SecondViewController *second = [[SecondViewController alloc] initWithString:sendMessage];
//Push view controller

现在,如果这两个都需要在头文件中定义一个 NSString *localBodyString 变量。

于 2012-07-16T17:59:23.820 回答