//在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;
}