極其簡單易用的ViewController push 傳參 封裝類別:JSegue

jopen 9年前發布 | 10K 次閱讀 JSegue iOS開發 移動開發

極其簡單易用的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'

項目主頁:http://www.baiduhome.net/lib/view/home/1448797398858

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!