使用宏定義替代控制器跳轉(zhuǎn)
1丹锹、導航push
宏定義
#define NAVPUSH(_VIEWCONTROLLER_) ({\ _VIEWCONTROLLER_ *(^block)(void) = ^{_VIEWCONTROLLER_ *controller = [[_VIEWCONTROLLER_ alloc]init];\ [self.navigationController pushViewController:controller animated:true];\ return controller;};\ LeJSZDViewController*controller = block();\ (controller);\ })\
使用方法觸發(fā)push效果 方便調(diào)用一句話實現(xiàn)push 也可以穿參
NAVPUSH(LeJSZDViewController).name = @"極速指導"; //傳參數(shù)
NAVPUSH(LeJSZDViewController)//也可以不穿參數(shù)
LeJSZDViewController *vc = NAVPUSH(LeJSZDViewController)湖笨;//也可以獲取對象
以前push是這樣的
LeJSZDViewController *controller = [[LeJSZDViewController alloc]init];
controller.name = @"極速指導";
[self.navigationController pushViewController:controller animated:true];
使用宏之后是這樣的
NAVPUSH(LeJSZDViewController);
如果要傳參數(shù)(只有一個參數(shù))
NAVPUSH(LeJSZDViewController).name = @"極速指導";
有多個參數(shù)
LeJSZDViewController * controller = NAVPUSH(LeJSZDViewController);
controller.name = @"極速指導";
controller.title = @"極速指導";
2.STORYBOARD便捷引用
#define NAVPUSHSTORYBOARD(_STORYBOARDVIEWCONTROLLER_,_NAME_,_INDENTIFER_) ({\
_STORYBOARDVIEWCONTROLLER_ *(^block)(void) = ^{_STORYBOARDVIEWCONTROLLER_ *controller = [[UIStoryboard storyboardWithName:_NAME_ bundle:nil] instantiateViewControllerWithIdentifier:_INDENTIFER_];\
[self.navigationController pushViewController:controller animated:true];\
return controller;};\
_STORYBOARDVIEWCONTROLLER_*controller = block();\
(controller);\
})\
3.模態(tài)
#define PRENT(_VIEWCONTROLLER_)({\
_VIEWCONTROLLER_ *(^block)(void) = ^{_VIEWCONTROLLER_ *controller = [[_VIEWCONTROLLER_ alloc]init];\
[self presentViewController:controller animated:true completion:nil];\
return controller;};\
_VIEWCONTROLLER_*controller = block();\
(controller);\
})\
2和3 使用方法和1 一樣 個人覺得比較簡單,分享!D硬筹误!