hidesBottomBarWhenPushed
引发的问题
问题描述
从ViewController2
push到ViewController3
,Vi架构图ewController2
设置 hid测试esBottomBarWhen测试抑郁症的20道题Pushed
属性,实现tabbar被隐藏。
TestViewControllerTwo *two = [[TestViewControllerTwo alloc]init];
two.hidesBottomBarWhenPushed = true;
[self.navigationController pushViewController:two animated:true];
在使用ViewCo动画片汪汪队ntroller2
界面的时候由于业务逻辑,需要退出界面动画片汪汪队,并切换选中架构图模板的tabbarItem
,跳转界面至View动画专业Controller1
,会发现tabbar
“不会在显示回来”。
[self.navigationController popViewControllerAnimated:true];
[self.navigationController.tabBarController setSelectedIndex:0];
解决过程
首先在ViewCont动画roller1
及Vie动画头像wController3
打印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