如何从另一个视图控制器访问“UItextView”数据

时间:2013-05-22 19:36:45

标签: objective-c uitextview

我如何从另一个视图控制器访问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];

2 个答案:

答案 0 :(得分:0)

当您在此处创建“EmergencyMessageController”viewcontroller的另一个实例时,它不会为您提供任何值。 您必须使用在EmergencyMessageController中设置电子邮件正文的相同实例变量。 或者正如Vertogo所说,这个EmergencyMessageController应该是第二个视图控制器的父节点,这样你就可以轻松访问父视图控制器属性。

答案 1 :(得分:0)

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

<强> ParentViewController.h

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

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

<强> ParentViewController.m

将textview添加到parentView Controller,如下所示

- (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]);
}