標籤:
從ViewController跳轉到FirstViewController, 在FirstViewController中傳一個NSInteger值回來
ViewController.m
#import "ViewController.h"
#import "FirstViewController.h"
@interface ViewController () <PassValueDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = [UIColorwhiteColor];
_myButton = [UIButtonbuttonWithType:UIButtonTypeCustom];
_myButton.frame =CGRectMake(20,20, 100, 100);
[_myButtonsetTitle:@"跳轉"forState:UIControlStateNormal];
_myButton.backgroundColor = [UIColorredColor];
[_myButtonaddTarget:selfaction:@selector(clicked:)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:_myButton];
}
// button點擊事件 跳轉到FirstViewController
- (void)clicked:(UIButton *)button
{
FirstViewController *firVC = [[FirstViewControlleralloc] init];
firVC.passDelegate =self;
[selfpresentViewController:firVC animated:YEScompletion:nil];
}
- (void)setValue:(NSInteger )value
{
NSLog(@"value ===== %ld", (long)value);
}
@end
FirstViewController.h
// 簽協議 以及方法(名子自己起,類型為要傳的值的類型)
@protocol PassValueDelegate <NSObject>
- (void)setValue:(NSInteger)value;
@end
@interface FirstViewController : UIViewController
// 簽代理 屬性
@property(nonatomic, assign)id<PassValueDelegate> passDelegate;
@property(nonatomic, assign)NSInteger number;
@end
FirstViewController.m
#import "FirstViewController.h"
@interface FirstViewController ()
@end
@implementation FirstViewController
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColorgreenColor];
_myButton = [UIButtonbuttonWithType:UIButtonTypeCustom];
_myButton.frame =CGRectMake(20,20, 100, 100);
[_myButtonaddTarget:selfaction:@selector(clicked:)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:_myButton];
_number = 1000;
}
//代理遵從協議的方法
- (void)clicked:(UIButton *)button
{
[self.passDelegatesetValue:_number];
[self dismissViewControllerAnimated:YEScompletion:nil];
}
iOS 代理協議傳值