zoukankan      html  css  js  c++  java
  • 单例---视图间数据的传递:标签显示输入的内容【多个视图中】

    RootViewController.m

    - (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)viewWillAppear:(BOOL)animated {
    
        
         UILabel *label = (UILabel *)[self.view viewWithTag:102];
        
        //创建单例对象
        BackData *backData = [BackData shareData];
        
        label.text = backData.text;
        
        [super viewWillAppear:animated];
    }
    
    - (void)buttonAction {
    
        ModalViewController *modalCtrl = [[[ModalViewController alloc] init] autorelease];
        
        modalCtrl.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
        
        [self presentViewController:modalCtrl animated:YES completion:NULL];
        
    }
    
    ModalViewController.m

    #import "BackData.h"
    
    @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];
        
        //创建单例对象
        BackData *data = [BackData shareData];
        data.text = field.text;
        
        [self dismissViewControllerAnimated:YES completion:NULL];
        
    }

    BackData.h

    @interface BackData : NSObject
    
    @property (nonatomic, copy) NSString *text;
    
    + (BackData *)shareData;
    


    BackData.m

    static BackData *data = nil;
    
    @implementation BackData
    
    + (BackData *)shareData {
    
        if (data == nil) {
            data = [[BackData alloc] init];
        }
        
        return data;
    }




  • 相关阅读:
    服务器(Ubuntu 12.04 LTS)上编译基于OpenCV的项目遇到的问题及解决方案
    ubuntu 16.04 LTS 降级安装gcc 4.8
    C#程序中获取电脑硬件配置信息的一种方法
    C#程序将对象保存为json文件的方法
    C#中运用事件实现异步调用
    Redis实现分布式锁 php
    CI框架整合UEditor编辑器上传功能
    PHP给图片加水印具体实现
    检测网站是否被和谐!
    vue的双向绑定和依赖收集
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7122346.html
Copyright © 2011-2022 走看看