(有码)代理模式导航控制器传值
2016-01-28 19:44
288 查看
//在AppDelegate.m中将oneViewController设置为根视图(不会设置的,在目标动作机制传值文章中有)
//TwoViewController.h
#import <UIKit/UIKit.h>
@class TwoViewController;
//声明代理方法
@protocol TwoViewControllerDelegate <NSObject>
- (void)twoViewControllerBackItems:(TwoViewController *)twoViewController setTitle:(NSString *)string;
@end
@interface TwoViewController : UIViewController
//声明代理属性
@property (nonatomic, weak) id<TwoViewControllerDelegate>delegate;
@end
//TwoViewController.h
#import "TwoViewController.h"
@class OneViewController;
@interface TwoViewController ()
@end
@implementation TwoViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
//设置返回按钮
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStyleDone target:self
action:@selector(btnClick)];
}
//设置点击事件,触发代理方法
- (void)btnClick{
[self.delegate twoViewControllerBackItems:self setTitle:@"第一个按钮"];
[self.navigationController popViewControllerAnimated:YES];
}
//OneViewController.m
#import "OneViewController.h"
#import "TwoViewController.h"
@interface OneViewController ()<TwoViewControllerDelegate>
@end
@implementation OneViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
}
//跳转到第二个页面
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
TwoViewController *twoViewController = [[TwoViewController alloc]init];
[self.navigationController pushViewController:twoViewController animated:YES];
//绑定代理
twoViewController.delegate = self;
}
//实现代理方法
- (void)twoViewControllerBackItems:(TwoViewController *)twoViewController setTitle:(NSString *)string{
//将导航条标题改变
self.navigationItem.title = string;
}
//TwoViewController.h
#import <UIKit/UIKit.h>
@class TwoViewController;
//声明代理方法
@protocol TwoViewControllerDelegate <NSObject>
- (void)twoViewControllerBackItems:(TwoViewController *)twoViewController setTitle:(NSString *)string;
@end
@interface TwoViewController : UIViewController
//声明代理属性
@property (nonatomic, weak) id<TwoViewControllerDelegate>delegate;
@end
//TwoViewController.h
#import "TwoViewController.h"
@class OneViewController;
@interface TwoViewController ()
@end
@implementation TwoViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
//设置返回按钮
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStyleDone target:self
action:@selector(btnClick)];
}
//设置点击事件,触发代理方法
- (void)btnClick{
[self.delegate twoViewControllerBackItems:self setTitle:@"第一个按钮"];
[self.navigationController popViewControllerAnimated:YES];
}
//OneViewController.m
#import "OneViewController.h"
#import "TwoViewController.h"
@interface OneViewController ()<TwoViewControllerDelegate>
@end
@implementation OneViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
}
//跳转到第二个页面
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
TwoViewController *twoViewController = [[TwoViewController alloc]init];
[self.navigationController pushViewController:twoViewController animated:YES];
//绑定代理
twoViewController.delegate = self;
}
//实现代理方法
- (void)twoViewControllerBackItems:(TwoViewController *)twoViewController setTitle:(NSString *)string{
//将导航条标题改变
self.navigationItem.title = string;
}
相关文章推荐
- Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to false 错误
- 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16
- 蓝桥杯 - 删除数组零元素
- 工作中的技巧
- 基于CNN的人脸识别
- 关于solver文件中test_iter和test_interval设置问题
- struts2-通过action从后台将json数据传到前台的方法(一)
- C++的一些笔记
- Mysql配置为Master/Slave的常用维护命令
- centos
- 在iOS 8中使用UIAlertController
- My First Android Development - FlappyAmusing
- 在Java中wait、notify和notifyAll是如何工作的
- STL_算法_对所有元素排序(sort、stable_sort)
- Git
- centos开机自动启动SVN服务的方法
- 精通 Android Data Binding
- 网络安全
- list容器
- 三、Lua中require,dofile,loadfile,dostring,loadstring,loadlib,load之间的区别