深刻理解代理模式
将第一页设为第二页的代理,通过代理完成将第二页的按钮按钮颜色改变,按钮名称传到第一页作为第一页的标题
没有tag怎么找到你创建的试图控制器
在第二页压栈的时候将当前页(即导航栏控制器UINavigationController的根视图控制器此处我将第一页设为根)设为第二页的代理,这样就指定了第二页(指定的)的代理为第一页
第一种:因为已设置第一页为第二页的代理,
在第二页.m文件中写 First * fir =(First *) self.delegate];
第二种:通过navigation的属性viewcontroller获取导航栏所有的控制器,返回值是一个数组,这个数组array【0】的第一个元素就是导航栏的根视图控制器,
UIViewController *vc=self.navigationController.viewControllers[0];
#import "Second.h"
#import "HeadFile.h"
@implementation Second
{
NSArray * _arrayForTitile ;
}
- (void)viewDidLoad{
[super
viewDidLoad];
self.view.backgroundColor = [UIColor
greenColor];
[self
_loadData];
}
#pragma mark - _loadData
- (void)_loadData{
// 标签文字存入数组
_arrayForTitile =
@[@"第1页",@"第2页",@"第3页",@"第4页"];
// 创建4个按钮
for (int i =
0; i < 4 ; i++) {
UIButton * btn = [UIButton
buttonWithType:UIButtonTypeCustom];
btn.backgroundColor = [UIColor
blueColor];
CGRect frame =
CGRectMake(self.view.frame.size.width/2.0-40,
self.view.frame.size.height/2.0-100
+ 50*i ,
80,
35);
btn.frame = frame;
[btn setTitle:_arrayForTitile[i]
forState:UIControlStateNormal];
[btn setTitleColor:[UIColor
lightGrayColor] forState:UIControlStateHighlighted];
[btn addTarget:self
action:@selector(changeColorAndTitle:)
forControlEvents:UIControlEventTouchUpInside];
[self.view
addSubview:btn];
btn.tag = i +100;
}
}
#pragma mark - changeColorAndTitle:
- (void)changeColorAndTitle:(UIButton *)btn{
// 创建4个按钮
btn.backgroundColor = [UIColor
redColor];
for (int i =
0 ; i < 4; i++) {
UIButton * button = (UIButton *)[self.view
viewWithTag:i+100];
if (button.tag != btn.tag) {
button.backgroundColor = [UIColor
blueColor];
}
}
// 获取代理fir
First * fir = (First *)self.delegate;
// 通过代理改变值
[fir
changeTitle:btn.titleLabel.text];
[self.navigationController
popViewControllerAnimated:YES];
}
@end
#import "First.h"
#import "HeadFile.h"
@implementation First
- (void)viewDidLoad{
[super
viewDidLoad];
// 初始化按钮
self.view.backgroundColor = [UIColor
blueColor];
self.title =
@"123124";
UIButton * btn = [UIButton
buttonWithType:UIButtonTypeCustom];
btn.backgroundColor = [UIColor
brownColor];
btn.frame =
CGRectMake(0,
0, 80,
35);
btn.center =
self.view.center;
[btn setTitle:@"下一页"
forState:UIControlStateNormal];
[btn setTitleColor:[UIColor
lightGrayColor] forState:UIControlStateHighlighted];
[self.view
addSubview:btn];
[btn addTarget:self
action:@selector(push)
forControlEvents:UIControlEventTouchUpInside];
}
#pragma mark - push
- (void)push{
Second * sec = [[Second
alloc]init];
sec.delegate =
self;
[self.navigationController
pushViewController:sec animated:YES];
}
#pragma mark - changeTitle
- (void)changeTitle:(NSString *)title{
self.title = title;
}
@end
#import "AppDelegate.h"
#import "HeadFile.h"
@interface
AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions {
// 设置跟控制器,设置导航栏根控制器
First * first = [[First
alloc]init];
UINavigationController * nv = [[UINavigationController
alloc]initWithRootViewController:first];
self.window.rootViewController
= nv;
return
YES;
}
UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题
UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题
UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题
UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题
UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题UINavigationController导航栏,点击第二页按钮,传标题title到第一页成为第一页标题