美文网首页
iOS界面传值

iOS界面传值

作者: RyderZhang | 来源:发表于2016-07-11 16:31 被阅读167次

第一:单例(SingleTon)

自己创建一个继承NSObject的.h和.m文件,例子如下:

SingleTon.h文件

#import <Foundation/Foundation.h>

@interface SingleTon : NSObject

//声明属性:用于传值或存值
@property(nonatomic,strong)NSString *str1;
@property(nonatomic,strong)NSString *str2;

//声明一个+方法也就是一个类方法
+(SingleTon *)sharedSingleTon;

@end

SingleTon.m文件

#import "SingleTon.h"

@implementation SingleTon

+(SingleTon *)sharedSingleTon {
    //声明一个静态变量:静态变量的类型是SingleTon类型
    static SingleTon *singleTon = nil;
    //GCD  线程管理   dispatch_once只执行一次   单次线程管理
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        if (!singleTon) {
            singleTon = [[SingleTon alloc] init];
        }
    });
    return singleTon;
}

@end

注意无论赋值还是使用的时候都要先进行初始化

//申明初始化单例类的对象
SingleTon *single = [SingleTon sharedSingleTon]

第二:系统单例(AppDelegate)

与单例传值类似,不过是直接用工程的AppDelegate.h和AppDelegate.m文件,在此不做例子说明了。

//获取单例对象
AppDelegate *app = [[UIApplication sharedApplication] delegate];

使用ARC时,获取全局的AppDelegate会有如下的警告。

Initializing 'AppDelegate *__strong' with an expression of incompatible type 'id<UIApplicationDelegate> _Nullable'

解决方案:强制转换

AppDelegate *app = (AppDelegate*)[[UIApplication sharedApplication] delegate];
//获取应用程序的单例对象
UIApplication *app = [UIApplication sharedApplication];
//获取应用程序的单例对象的代理对象
AppDelegate *delegate = (AppDelegate *)app.delegate;

第三:初始化传值
第四:属性传值(局限于只能正向传值)
第五:NSUserDefaults(通过存值进行传值)

第六:代理(delegate)
第七:block

第八:通知
第九:KVO

相关文章

  • iOS集成ReactNative跳转、传值

    iOS跳转RN界面iOS跳转RN界面传值iOS跳转不同的RN界面(一)iOS跳转不同的RN界面(二)RN界面跳转到...

  • 几种iOS界面之间的传值方式

    几种iOS界面之间的传值方式 一.正向传值方式 (BOOL)application:(UIApplication ...

  • iOS页面间传值详解(二)

    在iOS页面间传值详解(一)中,介绍了iOS界面间的正向传值以及逆向传值的两种方法,其实逆向传值还可以使用bloc...

  • 界面传值ios

    一.通知传值 NSNotification //捕获通知 二. block传值 1.声明一个block变量 2.实...

  • iOS界面传值

    第一:单例(SingleTon) 自己创建一个继承NSObject的.h和.m文件,例子如下: SingleTon...

  • iOS • 记——代理传值和Block传值的简单对比

    在iOS开发中,两个界面之间的传值是开发中经常会用到,给需要传值的对象,直接定义属性就能传值。传值分为两种,顺传和...

  • iOS中界面传值的几种方式

    1.属性传值 属性传值适用于顺序传值,从前面的界面传值给后面的界面。 2.代理传值 用代理的方式实现界面间传值稍微...

  • IOS开发 多界面传值

    本节学习内容: 1.多界面传值的基本概念 2.多界面传值的方法 3.多界面传值的应用 【多界面传值 属性】 cha...

  • ios界面传值2016.5

    五种方法 1.属性传值,适合界面A到界面B的传值2.单例, 多个界面传值3.通知 , 界面A跳...

  • iOS Block界面传值

    首先在你要传的值的界面写一个Block块 .h文件 typedefvoid(^ReturnValueBlock) ...

网友评论

      本文标题:iOS界面传值

      本文链接:https://www.haomeiwen.com/subject/terjjttx.html