(有码)Block模式实现导航控制器页面传值
来源:互联网 发布:为何下载不了软件 编辑:程序博客网 时间:2024/04/28 04:22
//在AppDelegate.m中将oneViewController设置为根视图(不会设置的,在目标动作机制传值文章中有)
//TwoViewController.h
#import <UIKit/UIKit.h>
@interface TwoViewController : UIViewController
//声明block属性(相当于声明一个特殊的方法)
@property (nonatomic, copy) void(^twoViewControllerBackItemTouchBlock)(TwoViewController *twoViewController, NSString *string);
@end
//TwoViewController.m
#import "TwoViewController.h"
@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.navigationController popViewControllerAnimated:YES];
//判断Block是否为nil
if (self.twoViewControllerBackItemTouchBlock) {
//给block传值
self.twoViewControllerBackItemTouchBlock(self,@"block逆向传值");
}
}
//OneViewController.m
#import "OneViewController.h"
#import "TwoViewController.h"
@interface OneViewController ()
@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];
//实现Block中的方法(注意是setBlock)
[twoViewController setTwoViewControllerBackItemTouchBlock:^(TwoViewController *twoViewController, NSString *string) {
self.navigationItem.title = string;
}];
}
- (有码)Block模式实现导航控制器页面传值
- (有码)代理模式导航控制器传值
- (有码)UI导航控制器目标动作机制传值
- (有码)UINavigationController(导航控制器)
- 导航控制器Navigation实现页面跳转
- Block实现页面传值
- 29.导航控制器和页面间的传值
- 使用Block实现页面传值
- block 页面传值
- UINavigationControlle(导航视图控制器)控制下的页面跳转与值的传递(协议传值)
- 自定义封装导航栏左右按钮点击事件和特定风格的控制器供多个控制器继承—— 当很多导航页面有相似的导航条时
- ios控制器之间传值-Block传值
- 导航视图控制器及其属性传值
- IOS之导航控制器传值
- IOS block 块实现简单的页面跳转传值
- 用block实现两个页面间的传值
- iOS开发 使用Block实现两个页面互相传值
- Block(块或者闭包)实现页面传值
- Oracle忘记密码时
- python中的time模块
- Uva(Digit Generator,1583) 生成元
- Linux压缩与解压
- Redis
- (有码)Block模式实现导航控制器页面传值
- 【第一行代码】Android系统架构
- Markdown简单实例教程
- 使用 Spring Data JPA 简化 JPA 开发
- QT5+OpenCV美白效果
- [android]_[初级][插入短信数据到短信数据库]
- Storm架构
- Linux内核调试工具: Crash - 调试page cache的新工具
- HDOJ 5611-Baby Ming and phone number【模拟】