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