UI_AppDelegate反向传值
1.新建项目,在AppDelegate.h文件中声明实例变量
#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; //添加一个属性 @property (nonatomic,copy)NSString *textString; @end
2.在ViewController.m文件中定义按钮(button),标签(label)
#import "ViewController.h" #import "SubViewController.h" #import "AppDelegate.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //设置背景颜色 self.view.backgroundColor = [UIColor orangeColor]; //创建一个按钮 UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem]; //设置frame btn.frame = CGRectMake(50, 50, 100, 50); //设置文字 [btn setTitle:@"切换界面" forState:UIControlStateNormal]; //增加事件 [btn addTarget:self action:@selector(clickAction:) forControlEvents:UIControlEventTouchUpInside]; //增加到视图中 [self.view addSubview:btn]; //创建一个UILabel UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, 110, 100, 50)]; //设置背景颜色 label.backgroundColor = [UIColor redColor]; //增加到视图中 [self.view addSubview:label]; //设置tag值 label.tag = 100; } - (void)clickAction:(id)sender { //创建视图控制器对象(需要导入头文件) SubViewController *subCtrl = [[SubViewController alloc] init]; //切换视图 [self presentViewController:subCtrl animated:YES completion:nil]; } //重写viewDidAppear方法 -(void)viewDidAppear:(BOOL)animated { //继承父类,一定要写 [super viewDidAppear:animated]; //获取应用对象(需要导入头文件) UIApplication *app = [UIApplication sharedApplication]; //获取AppDelegate对象 AppDelegate *appDelegate = app.delegate; //取到UILabel UILabel *label = (UILabel *)[self.view viewWithTag:100]; //修改label上面的文字 label.text = appDelegate.textString; } //在接收到内存警告的时候调用 //释放一些可以恢复的对象 - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
3.新建视图控制器SubViewController
1 #import "SubViewController.h" 2 #import "AppDelegate.h" 3 4 @interface SubViewController ()<UITextFieldDelegate> 5 6 @end 7 8 @implementation SubViewController 9 10 - (void)viewDidLoad { 11 [super viewDidLoad]; 12 // Do any additional setup after loading the view. 13 self.view.backgroundColor = [UIColor yellowColor]; 14 //创建一个返回的按钮 15 UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem]; 16 //设置frame 17 btn.frame = CGRectMake(50, 50, 100, 50); 18 //设置文字 19 [btn setTitle:@"返回" forState:UIControlStateNormal]; 20 //增加点击事件 21 [btn addTarget:self action:@selector(backAction:) forControlEvents:UIControlEventTouchUpInside]; 22 //增加到视图上 23 [self.view addSubview:btn]; 24 25 //创建一个UITextField 26 UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(50, 110, 100, 50)]; 27 //设置borderStyle 28 textField.borderStyle = UITextBorderStyleRoundedRect; 29 //增加到视图上 30 [self.view addSubview:textField]; 31 //设置代理,在头文件或者匿名类中增加协议<UITextFieldDelegate> 32 textField.delegate = self; 33 } 34 - (void)backAction:(id)sender 35 { 36 [self dismissViewControllerAnimated:YES completion:nil]; 37 } 38 #pragma mark - UITextFieldDelegate 39 -(BOOL)textFieldShouldReturn:(UITextField *)textField 40 { 41 //收起键盘 42 [textField resignFirstResponder]; 43 //取得应用的对象(要导入头文件"AppDelegate.h") 44 UIApplication *app = [UIApplication sharedApplication]; 45 //取得AppDelegate类型的对象 46 AppDelegate *appDelegate = app.delegate; 47 //把textField.text这个值传递给appDelegate的textString属性 48 appDelegate.textString =textField.text; 49 50 return YES; 51 } 52 53 - (void)didReceiveMemoryWarning { 54 [super didReceiveMemoryWarning]; 55 // Dispose of any resources that can be recreated. 56 } 57 58 @end
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。