首页 > 代码库 > UI_AppDelegate反向传值

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     //设置frame17     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     //创建一个UITextField26     UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(50, 110, 100, 50)];27     //设置borderStyle28     textField.borderStyle = UITextBorderStyleRoundedRect;29     //增加到视图上30     [self.view addSubview:textField];31     //设置代理,在头文件或者匿名类中增加协议<UITextFieldDelegate>32     textField.delegate = self;   33 }34 - (void)backAction:(id)sender35 {36     [self dismissViewControllerAnimated:YES completion:nil];37 }38 #pragma mark - UITextFieldDelegate39 -(BOOL)textFieldShouldReturn:(UITextField *)textField40 {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

 

UI_AppDelegate反向传值