1.obj-c swift 混合开发
在引入 “项目名-Swift.h” 时一直报错,在网上也没有找到解决方法,最后在target -> 找到
因为项目不是自己建的,之前可能是被改过项目名,objective-c Generated Interface Header Name 项就是指定的 “项目名-Swift.h” 的名称,以前以为这个文件名是不能改的,现在看来是可以在这里自行修改,改好名后引入成功
2. ARC 和 非ARC 共存
现在的IOS 项目很多都使用的 ARC (自动引用记数),但很多的第三方库还是使用的 非ARC (手动释放) 的方式 ,在引用这些库时直接就会build 不过,
解决方法:
在build phases -> complie sources 中对 那些文件进行 -fno-obj-arc 标记 为 非ARC 文件 后可成功编译
备注: 如果是在非 ARC 中使用 ARC 的库 也可进行 -fobj-arc 标记为 ARC 文件
3. 证书 和 打包
分几种情况,
我的是公司开发帐号, 多人共同开发,
需要先使用公司帐号的个人apple 帐号进行邀请,会发一个邮件到 个人邮箱中,。。。
4.ios 程序键盘回收的问题
:第TPKeyboardAvoiding三方类
setInputAccessoryView:为指定text 设备键盘工具条回收
5.返回多层viewcontroller的情况,
使用presentViewController 情况,即 modal模式弹出的情况可以使用 presentingViewController 属性得到前一个 viewcontroller逐层返回,
__block UIViewController *prev =[self presentingViewController]; __block UIViewController *prev2 = [prev presentingViewController]; [self dismissViewControllerAnimated:false completion:^{ [prev dismissViewControllerAnimated:false completion:^{ [prev2 dismissViewControllerAnimated:true completion:^{ }]; }]; }];
使用uinavtioncontroller 的情况则方便许多
1)弹出当前视图控制器(弹出并向左显示前一个视图)
[self.navigationController popViewControllerAnimated:YES];
2)弹出到指定视图控制器(回到指定视图控制器, 也就是不只弹出一个)
[self.navigationController popToViewController:viewController animated:YES];
3)弹出到根视图控制器( 比如说你有一个“Home”键,也许就会实施这个方法了)
[self.navigationController popToRootViewControllerAnimated:YES];
具体应用如下:
假设我的一个navigationController里共有4个viewcontroller,要是在每层ViewController返回上一层ViewController,有一个很简单方法:
[self.navigationController popViewControllerAnimated:YES];
当然,要想直接返回到根viewcontroller也有现成的方法:
[self.navigationController popToRootViewControllerAnimated:YES];
不过想要从第5层直接返回到第2层或第3层,则没有现成的方法可以调用了。
但这时若能够知道pop回去的ViewController的指针,也就好办了。
具体写法如下:
[self.navigationController popToViewController: [self.navigationController.viewControllers objectAtIndex: ([self.navigationController.viewControllers count] -2)] animated:YES];
在使用时,根据自己返回层的需要,只要改变一下“-2”这个数字就可以达到目的了。