iOS 开发随笔 (hidesBottomBarWhenPushed、静态库冲突 )

使用hidesBottomBarWhenPushed问题

问题描述:

ViewController2push到ViewController3,ViewController2 设置 hidesBottomBarWhenPushed属性,实现tabbar被隐藏。

    TestViewControllerTwo *two = [[TestViewControllerTwo alloc]init];
    two.hidesBottomBarWhenPushed = true;
    [self.navigationController pushViewController:two animated:true];

在使用ViewController2界面的时候由于业务逻辑,需要退出界面,并切换选中的tabbarItem,跳转界面至ViewController1,会发现tabbar“不会在显示回来”。

 [self.navigationController popViewControllerAnimated:true];
  [self.navigationController.tabBarController setSelectedIndex:0];
解决过程

首先在ViewController1ViewController3打印tabbar的hidden属性,值等于false,因此无法使用hidden属性控制tabbar显示。
猜测由于[self.navigationController popViewControllerAnimated:true];动画返回界面,并且直接切换控制器界面,导致tabbar没有及时显示,将其改为[self.navigationController popViewControllerAnimated:false];,问题解决。

问题修复
[self.navigationController popViewControllerAnimated:false];
[self.navigationController.tabBarController setSelectedIndex:0];

静态库冲突问题

问题描述:

开发中接入三方静态库文件实现功能,打包编译后发现与原有静态库内置文件名称冲突。

解决过程

查找两个静态库的来源为同一家公司,查阅有关静态库文件冲突资料,解决方法来源于有关.a(静态库)冲突问题

问题修复

备份源文件,把这两个.a文件“中的一个”.a文件生成对应架构的.a文件,然后把这个.a文件解压缩成.o文件,删除里面看到的重复的.o文件。然后再把这个对应.o文件合成对应架构的.a文件,再把多个架构的.a文件合成一个.a文件。最后把项目里的.a文件替换成自己处理过的.a文件。测试通过,编译正常运行。

注:方法仅限于三方静态库来源一致,一定要备份源文件。

附流程:

假设.a文件名称为test.a,将其放置一个单独的文件夹“Test”中
终端

$ cd  "Test文件夹路径"
$ lipo  -info  test.a //可以看到armv7/arm64等字眼。就说明这个test.a包含了几种架构包。
//根据里面含有几种架构包就执行相应命令
//例:
$ lipo  test.a  -thin armv7  -output  test_armv7.a
$ lipo  test.a  -thin i386  -output  test_i386.a
//在Test文件夹得到libx-armv7.a 等等
//创建一个文件夹用于解压架构包文件
$ mkdir armv7
$ cd armv7
// 解压上一级目录下的armv7架构包文件
$ ar  -x  ../libx-armv7.a
//在armv7文件夹中找到对应的文件删除后生成新的armv7.a文件
$ libtool -static -o ../test_newarmv7.a *.o //【.a 和 * 号之间有一个空格】
// 重复生成其他对应架构包  创建文件夹  解压 删除冲突文件 生成新的静态库包
//合并所有新的架构包
$ lipo  -create  test_newarmv7.a  test_newi386.a  -output  test.a
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,076评论 3 119
  • [玫瑰]4.21源桐教学反馈: 今天来了先检查他作业完成情况,口算40页之前,大部分都补做了,还剩1页半没完成;英...
    姗姗_db06阅读 1,355评论 0 0
  • 每次写作,都是自我感受的一种抒发。希望借此机会理清自己的情绪。也许这也是文字的力量和魅力所在。写作,让人更加看清...
    七月与树阅读 7,645评论 2 1
  • 这是一九八四年的深秋十月。西北的戈壁小城里已有了初冬的迹象。一场凉似一场的秋风扫过,满地的落叶席卷成堆,处...
    叮咚_bbe7阅读 2,953评论 2 2

友情链接更多精彩内容