// 移除观察者
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
方式三、单例
1、定义一个单例并声明一个属性(传递值用)。
2、在控制器 Two 给单例属性赋值 。
3、在控制器 One 中利用单例的属性取出值。
第1步
TestSingleton.h
#import <Foundation/Foundation.h>
@interface TestSingleton : NSObject
/** 构造方法,返回单例对象 */
+ (instancetype)shareInstance;
/** 用于传递值 */
@property (strong, nonatomic) NSString *values;
@end
TestSingleton.m
#import "TestSingleton.h"
@implementation TestSingleton
static TestSingleton *_instance = nil;
+ (instancetype)shareInstance
{
static dispatch_once_t onceToken ;
dispatch_once(&onceToken, ^{
_instance = [[self alloc] init] ;
}) ;
return _instance ;
}
@end
第2步
- (void)navBack:(UIButton *)backBtn
{
/** 生成单例并赋值 */
TestSingleton *singleton = [TestSingleton shareInstance];
singleton.values = @"I'm from twoVC";
[self.navigationController popViewControllerAnimated:YES];
}
第3步
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
/** 生成单例并取出值 */
TestSingleton *singleton = [TestSingleton shareInstance];
_oneTextF.text = singleton.values;
}
方式四、block










