-1

我如何UITextView从另一个视图控制器访问正文以获取电子邮件是我的代码

EmergencyMessageController *ViewB1 = [[EmergencyMessageController alloc]initWithNibName:@"EmergencyMessageController" bundle:nil];

NSString *Em1 =​​ ViewB1.Emsg.text;

 NSString *body = [[NSString alloc] initWithFormat:@" ",Em1];//my problem is here to access Em1 data

    controller.mailComposeDelegate = self;
    [controller setSubject:@"Emergency Message"];
    [controller setMessageBody:body isHTML:YES]; 
    [controller setToRecipients:recipients];
    [self presentModalViewController:controller animated:NO];
4

2 回答 2

0

当您在这里创建另一个“EmergencyMessageController”视图控制器实例时,它不会给您任何值。您必须使用与在 EmergencyMessageController 中设置电子邮件正文相同的实例变量。否则正如 Vertogo 所说,这个 EmergencyMessageController 应该是第二个视图控制器的父级,这样您就可以轻松访问父视图控制器的属性。

于 2013-05-23T08:24:43.780 回答
0

嘿 user2396021 这是一个简单的父子视图控制器示例,希望对您有所帮助。

父视图控制器.h

在父视图控制器中将您的 textView 声明为类变量,如下所示。

#import <UIKit/UIKit.h>
@interface ParentViewController : UIViewController
@property (nonatomic,strong) UITextView *mytextView;
@end

父视图控制器.m

将 textview 添加到 parentView 控制器,如下所示

- (void)viewDidLoad
{
    [super viewDidLoad];
    _mytextView = [[UITextView alloc]initWithFrame:CGRectMake(100, 100, 200, 30)];
    [_mytextView setBackgroundColor:[UIColor grayColor]];
    [self.view addSubview:_mytextView]; 
}

ChildViewController.h

将 ParentViewController 作为 ChildViewController 的超类(或者您可以说父类),如下所示

#import "ParentViewController.h"
@interface ChildViewController : ParentViewController
@end

ChildViewController.m

现在您可以使用“super”关键字轻松访问父类(ParentViewController)的任何类变量。

- (void)viewDidLoad
{
    [super viewDidLoad];    
    NSLog(@"Text value of uitextview from Parent class %@",[[super mytextView]text]);
}
于 2013-05-27T04:31:54.543 回答