A页面到B,B到C,C返回A时候触发hub弹窗

2018-03-07  本文已影响0人  叶熙雯
你的小可爱已上线

需求是这样的:要求我在一个列表页是A 进入社团主页是B 从B进入社团详情页是C。在C中退出社团 直接返回到A列表页 在A中显示hub

C的页面,进行返回上个A页面时候,在navigationController里面遍历所有的viewController,判断其中一个页面是不是A页面的类(以下我以JHClubInfoViewControllerA页面的名字),然后找到A的页面并且给A页面的块赋值。

[self.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
                if ([obj isKindOfClass:[JHClubInfoViewController class]]) {
                    JHClubInfoViewController *vc = (JHClubInfoViewController *)obj;
                    vc.hudText = ^(){
                        WindowsHUDShowTextWithDelayTime(@"修改备注成功");//我hub的宏
                    };
                    [self.navigationController popToViewController:vc animated:YES];
                }

            }];

A页面中的.h文件中声明一个块为了接hub信息显示的:

xxx.h中 

Strong void (^hudText)();

A页面的.m文件的- (void)viewWillAppear:(BOOL)animated进行实现,如果_hudText有被调用就会显示

xxx.m

- (void)viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];

    if (_hudText) {

        _hudText();

        _hudText = nil;

    }

}

附上我的hub宏:

#define WindowsHUDShowTextWithDelayTime(text) UIWindow * view = [[[UIApplication sharedApplication] delegate] window];\
                                              NSArray *windows = [UIApplication sharedApplication].windows;\
                                              for (id windowView in windows) {\
                                              NSString *viewName = NSStringFromClass([windowView class]);\
                                                  if ([@"UIRemoteKeyboardWindow" isEqualToString:viewName]) {\
                                                      view = windowView;\
                                                      break;\
                                                    }\
                                            }\
                                            [view makeToast:text duration:1 position:CSToastPositionBottom]

需要的人可以直接copy走吧!记得帮我点点❤ 爱你哟!

上一篇 下一篇

猜你喜欢

热点阅读