• 通知---视图间数据的传递:标签显示输入的内容【多个视图中】


    RootViewController.m

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            //注冊通知
            [[NSNotificationCenter defaultCenter] addObserver:self
                                                     selector:@selector(recieveData:)
                                                         name:BackNotification object:nil];
        }
        return self;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        self.view.backgroundColor = [UIColor greenColor];
        
        //创建显示文字的label
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 200, 40)];
        label.tag = 102;
        label.backgroundColor = [UIColor grayColor];
        [self.view addSubview:label];
        [label release];
        
        //加入按钮
        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.frame = CGRectMake(20, 20, 90, 60);
        [button setTitle:@"打开模态" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:button];
        
        
    }
    
    - (void)recieveData:(NSNotification *)notification {
    
        
         UILabel *label = (UILabel *)[self.view viewWithTag:102];
        
        NSString *text = [notification.userInfo objectForKey:@"text"];
        
        label.text = text;
        
    }
    
    - (void)buttonAction {
    
        ModalViewController *modalCtrl = [[[ModalViewController alloc] init] autorelease];
        
        modalCtrl.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
        
        [self presentViewController:modalCtrl animated:YES completion:NULL];
        
    }
    

    ModalViewController.m

    #define  BackNotification     @"BackNotification"
    @interface ModalViewController ()
    
    @end
    
    @implementation ModalViewController
    
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        self.view.backgroundColor = [UIColor redColor];
        
        //加入按钮
        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.frame = CGRectMake(20, 20, 90, 60);
        [button setTitle:@"关闭模态" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:button];
        
        //创建输入框
        UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(50, 100, 200, 40)];
        textField.tag = 101;
        textField.borderStyle = UITextBorderStyleRoundedRect;
        [self.view addSubview:textField];
        [textField release];
        
        
    }
    
    - (void)buttonAction {
        
        UITextField *field = (UITextField *)[self.view viewWithTag:101];
    
        NSString *text = field.text;
        
        NSDictionary *dic = @{@"text":text};
        
        //发送通知
        [[NSNotificationCenter defaultCenter] postNotificationName:BackNotification
                                                            object:self userInfo:dic];
        
        
        
        
        [self dismissViewControllerAnimated:YES completion:NULL];
        
    }
    


  • 相关阅读:
    js变量的作用域问题
    HTML网页公用头部与尾部的一些方法
    拖动对象ondrag
    子div设置float后导致父div无法自动撑开的问题
    js像素运算问题
    js自动轮播图片的两种循环方法(原创)
    display:none显示和隐藏
    Linux shell脚本基础学习详细介绍(完整版)一
    java技术思维导图(转载)
    VIM编辑命令的技巧
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6772396.html
Copyright © 2020-2023  润新知