App项目模块化遇到的UITabBarController和通知的问题

基于cocoapods实现模块化的道路,项目已经顺利完成,但是将项目集成到主project时,出现了的两个费解的小问题.
一个是UITabBarController的第二级子控制器中,用如下命令后pop到主页面时,

self.tabBarController.selectedIndex = 2;
出现TabBar消失的问题:

TabBar消失.png

另一个是cocoapods集成的项目无法接收到主project项目发送的通知.
多次尝试之后,发现如下解决方式:
1子页面使用pop后,延迟一段时间在使用上面的命令:

[self performSelector:@selector(jump) withObject:nil afterDelay:0.01];
- (void)jump
{
    self.tabBarController.selectedIndex = 2;
}

2接收通知的方法采用下面的方式

[[NSNotificationCenter defaultCenter] addObserverForName:@"GTDNotification_UserLoginOut" object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification * _Nonnull note) {
    [self changeVc];
}];
- (void)changeVc{
    self.navigationController.viewControllers = @[[GXTLoginParentController new]];
}

上述解决方式,本质上并没有改变程序的执行逻辑,而仅仅是换一种实现方式,至于原通用方式为什么在模块化项目中无法实现,详细原因还没有找出,估计这是OC的内部问题,也可能是cocoapods所带来的内部不稳定性.

欢迎遇到同样疑惑情况的小伙伴一块交流~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,523评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,252评论 4 61
  • 几种主要的需求: 直接创建一个Observable(创建操作) 组合多个Observable(组合操作) 对Obs...
    三也视界阅读 11,494评论 4 45
  • 一、整体进展和收获 1.我们从线上比较陌生状态,到了线下近距离接触 。很好地熟悉了彼此,简单介绍下: Kevin:...
    rainbow_72dd阅读 178评论 1 4
  • 为什么你懂得那么多道理,却依然过不好这一生。 忙着跟风。 看到别人学英语,你赶紧报个班,想再回上学那会背单词的巅峰...
    子兰_时空阅读 420评论 1 3