極其簡單易用的ViewController push 傳參 封裝類別:JSegue
極其簡單易用的ViewController push 傳參 封裝類別;
UIViewController push pop modal simple category.
方便的頁面跳轉,只需一行代碼
支持Storyboard,xib,無view
/*! * @brief push頁面 * * @param aVC VC的字符串名稱,VC的實例,VC在storyboard中的id */ - (void)js_push:(id)aVC;
example:
//a ViewController name [self js_push:@"ViewController"]; //a ViewController ID in Stroyboard [UIViewController js_setStoryboardNames:@"Main"]; [self js_push:@"VC_ID"]; //a instance of UIViewController UIViewController *vc = [UIViewController new]; [self js_push:vc];
other mothers:
/*! * @brief push頁面,若頁面存在則pop到該頁面 * * @param aVC VC的字符串名稱,VC的實例,VC在Storyboard中的id */ - (void)js_pushOrPopTo:(id)aVC; /*! * @brief push頁面,并且移除前面的頁面 * * @param aVC VC的字符串名稱,VC的實例,VC在Storyboard中的id * @param count -1表示清空前面所有vc,并且設置當前頁面為rootVC;0表示不清除前面頁面;>0表示清除前面count個vc;若count > 所有vc數量,則效果同-1 */ - (void)js_push:(id)aVC removePrior:(NSInteger)count;
...
方便的頁面傳參
可以直接設置目標頁面的property,或者傳遞字典。
在目標頁面只需self.js_parameter[@"key"]即可獲得傳值。
/*! * @brief push頁面 * * @param aVC VC的字符串名稱,VC的實例,VC在Storyboard中的id * @param param 傳遞的參數,使用self.js_parameter獲取。可以[self js_setParamType:JSegueParamType]修改支持實例的property變量設置 */ - (void)js_push:(id)aVC param:(NSDictionary*)param;
example:
@interface XibViewController : UIViewController
@property (nonatomic, strong) NSString *publicProperty;
@end
//push and send param
NSDictionary *paramDict = @{@"publicProperty":@"hello public property",
@"privateProperty":@"hello private property",
@"customDictParam":@"hello custom dict param"};
[self js_push:@"XibViewController" param: paramDict];
//receive
@implementation XibViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"NoXibViewController received:%@",self.js_parameter);
NSLog(@"publicProperty:%@",self.publicProperty);
NSLog(@"privateProperty:%@",self.privateProperty);
self.label.text = self.js_parameter[@"customDictParam"];
}other methods:
...in demo
使用CocoaPods添加
pod 'JSegue'
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!